私は多くのソケットの例をテストしましたが、それらの間の通信は非常に単純でした: ソケットが開かれ、閉じられるまで開いたままになり、送信した情報以外は送信されません。
HTML5 Web ソケットでは、これら 2 つの瞬間が異なります。
最初に、クライアント 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 セットアップ ユーティリティ) から文字列を送信すると、ソケットのonmessage
イベントが発生せず、クライアント ソケットがこの直後に接続を閉じます。
したがって、HTML5 Web ソケットは、使用する前に何らかのハンドシェークを想定していると思います。それについてどこで読むべきですか?
ところで: サーバー側言語として Ruby を使用しています。