문제

나는 많은 소켓 예제와 그들 사이의 의사 소통이 꽤 간단했다 : 소켓이 열리고, 당신이 그것을 닫을 때까지, 당신이 보낸 사람을 제외하고는 정보가 전송되지 않을 때까지 소켓이 열리고 열려 있지 않다.

HTML5 웹 소켓이 두 순간이 다릅니다.

먼저 클라이언트 HTML5 소켓이 서버 소켓에 연결되는 즉시 한 번의 정보를 보냅니다.

GET /echo HTTP/1.1
Upgrade: websocket
Connection: Upgrade
Host: localhost:2002
Origin: null
Pragma: no-cache
Cache-Control: no-cache
Sec-WebSocket-Key: iYzsmhdzg6h6/UGtCLLGVA==
Sec-WebSocket-Version: 13
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits, x-webkit-deflate-frame
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36
Cookie: _rails-socket-listener_session=dGtleFYxNjhIaUZrZVpOWUNIMHdFZFd6WW9wY2FJYjIwOWdSMFVPR1ZkYkZUakExdVlhNzMvWEphNG1IRUIvT1JsQ0N6bHF4REFXTkJUemE4R2RjOER6bXdhSEt6M0tIYmRwV0w3VzkrVGt4MzN2Z0M3MXMyYndZR3hvOGMySTJTZmdEMW9JdEE5ZERuSDB4VCtROFNnPT0tLTlheG1KamlBSVVmT0tUZ1F5bmQ0OUE9PQ%3D%3D--23413749a30295f08d277292837c76187a02a332
.

이 정보를 해석하는 방법은 무엇입니까?그것과 무엇을해야합니까?

두 번째로 디버깅 서버 (Hercules Setup 유틸리티)에서 일부 문자열을 보내면 소켓의 onmessage 이벤트가 해고되어 있지 않고 클라이언트 소켓이 다음 직후에 연결을 닫습니다.

그래서 HTML5 웹 소켓이 사용하기 전에 핸드 쉐이킹을 기대하고 있다고 가정합니다.그것에 대해 어디에서 읽을 지?

btw : 서버 측으로 Ruby를 사용하고 있습니다.

도움이 되었습니까?

해결책

많은 웹 소켓 예제를 테스트했습니다 ....

"웹 소켓"을 사용하지 않았지만 단순히 "소켓"을 사용하지 않았습니다.직접 TCP / IP.WebSockets (예 : HTML Web Sockets ")는 다릅니다. 다른 HTTP 연결과 같은 소켓을 만드는 데 사용됩니다.따라서 "sec-websocket-key"와 함께 "업그레이드 : WebSocket"헤더가있는 HTTP 쿼리가

를 표시합니다.

연결을 설정 한 후 (코드 101과 응답을 보내는) WebSocket 연결은 데이터를 자신의 프레이밍 및 스크램블링을 가지므로 일반 소켓 도구로 사용할 수 있습니다.

http://tools.ietf.org/html/rfc6455 사양 및더 많은 문서를 찾는 경우 "webSockets"키워드를 키워드로 사용하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top