2014-12-21 1 views
1

웹 소켓에서 데모를하고 있습니다 - http://blog.teamtreehouse.com/an-introduction-to-websockets.페이로드 (데이터)를 반복하면 웹 소켓의 대기 시간이 단축됩니까?

대기 시간의 정의는 "데이터 패킷이 지정된 지점에서 다른 지점으로 이동하는 데 걸리는 시간"이라는 것을 알고 있습니다. http://www.linfo.org/latency.html

이 간단한 작업은 웹 소켓을 통해 서버에 "jasmine"이라는 기본 메시지를 보내는 것으로 구성됩니다. treehouse에 대한 기사에서는 "데이터가 WebSocket을 통해 메시지로 전송되는 방식에 대해 설명했습니다. 각 메시지는 전송할 데이터 (페이로드)가 포함 된 하나 이상의 프레임으로 구성됩니다.이 프레임 기반 메시징 시스템을 사용하면 - 전송되는 데이터를 전송하므로 대기 시간이 현저히 줄어 듭니다. "

제 질문은 웹 소켓에 요청을 보낼 때마다 GET 요청에서 "jasmine"이라는 하나의 데이터가 아닌 두 프레임이 표시되는 이유는 무엇입니까? 지연이 어떻게 줄어들지는 모르겠다. 이것은 내가 요소 도구 검사에 갈 때 내 말은 무엇인가 -> 네트워크를,이, 내가 헤더에 표시되는 내용 enter image description here

이고 제가 enter image description here

방법 가진 않습니다 프레임 탭에서 볼 페이로드 (데이터)로 구성된 두 프레임은 대기 시간을 줄입니까?

+0

그중 하나가 echo 호스트의 _response_입니까? –

+0

그래, 그게 합리적 이겠지만 헤더는 GET 요청이므로 모든 프레임이 GET 요청의 일부라고 가정하고있다. – committedandroider

답변

1

@ 윌리안 가격이 적당합니다 (의견 참조).

WebSocket 프로토콜로 연결이 UPGRADE되면 더 이상 HTTP가 아닙니다. 초기 핸드 셰이크 요청 (HTTP GET)을 볼 수는 있지만 이후 서버는 HTTP 용 101 전환 프로토콜을 응답합니다.이 후 WebSocket 프로토콜 (RFC 6455)을 사용하여 통신하는 새로운 영구 TCP 연결이 있고 거기에 더 이상 "요청"과 "응답"에 대한 연결이 없습니다 - 메시지 기반이며 어느 쪽이라도 메시지를 보낼 수 있습니다.

당신이 실제로 본 것은 당신이 보낸 하나의 메시지이고 다른 하나는 서버에서 응답 한 메시지입니다. (그게 뭔지 echo.websocket.org 않습니다 - 메시지를 다시 클라이언트에 ECHOes).

+0

하지만 두 프레임 모두 나의 초기 GET 요청은 따로 있습니까? – committedandroider

+0

앞서 언급 한 것처럼 WebSocket 프로토콜은 HTTP를 사용하지 않습니다. 초기 HTTP 요청 ('GET', WebSocket 용어의 'Upgrade Request')으로 프레임을 보낼 수 없습니다. –

관련 문제