2011-08-20 5 views
1

웹 소켓 사용 방법을 설명하는 일반적인 예는 https://developer.mozilla.org/en/WebSockets/Writing_WebSocket_client_applications입니다. 해당 페이지에서웹 소켓 : 명명 된 서버의 의미?

:

이 간단한 예 http://www.example.com/socketserver에서 서버 에 연결, 새로운 웹 소켓을 작성합니다. "my-custom-protocol"의 프로토콜을 지정합니다.

var mySocket = new WebSocket ("http://www.example.com/socketserver", "my-custom-protocol");

제 질문은 websocket 서버 주소의이 예제에서 "socketserver"와 관련이 있습니다. 소켓 서버가 포트에서 수신 대기 중입니까?

var mySocket = new WebSocket("http://www.example.com:4242", "my-custom-protocol"); 

myGuy.connect(4242);처럼 소켓 서버에 대한 연결을 만드는 오래된 방법 같은 것 : 그래서, 나는 이런 식으로 뭔가를 이해할 수있다.

위의 "소켓 서버"에 처음 액세스 할 때 브라우저에서 포트 번호를 지정하지 않은 경우 어떤 유형의 연결을 사용합니까? URLConnection? 뭐?

답변

1

Websocket 프로토콜의 시작 부분은 HTTP와 같습니다. URL에 포트가 지정되어 있지 않으면 기본 포트 80이 사용됩니다. 연결은 TCP/IP를 사용하여 설정됩니다. 클라이언트가 보낸 초기 바이트에는 /socketserver 경로가 포함되므로 클라이언트가 요청하는 내용을 호스트가 알고있는 방식입니다.

위키 백과는 웹 소켓 클라이언트와 당신이보고해야 웹 소켓 서버 간의 개방 통신의 예를 가지고 http://en.wikipedia.org/wiki/WebSocket#WebSocket_Protocol_Handshake

+0

나는 그 정보를 전에 보았지만 어떻게 든 "GET/demo HTTP/1.1"이 내 눈앞에서 번쩍 거렸다 고 생각한다. 아마도 나는 다른 부분을보고 있었다. 바로 GET 요청입니다. 그래서 그들이 제공하는 예제는 서블릿에서 doGet()에 의해 처리 될 수 있습니까? –

+0

처음에는 GET 요청처럼 보입니다. 내가 말할 수있는 대부분의 내용입니다. 또한 나는 서블릿이 무엇인지 모른다. –

+0

시간이 지났습니다. 이전보다 더 많이 알고 있습니다. 그냥 내가 돌아올 줄 알았는데 .... 옙 ... http 요청으로 온다. 요청은 websocket으로 업그레이드하는 것입니다. 이제 HttpExchange가 응답 후 연결을 종료하기 때문에 실패 할 것이라고 추가 할 수 있습니다 (연결을 업그레이드하겠다고 약속 함). –

1

웹 소켓은 HTTP 업그레이드 요청을 통해 연결을 설정합니다. 따라서 위의 경우 웹 서버는 /socketserver의 업그레이드 요청을 WS 프로토콜을 통한 연결을 처리하는 실제 웹 오켓 서버로 다시 라우팅합니다.

+0

를 Ajax 요청의 URL 참조에 socketserver 유사한 /에 대한 참조인가? 예를 들어, url = "validate2"; req.onreadystatechange = callback; req.open ("POST", url, true); –