質問

私は多くのソケットの例をテストし、それらの間のコミュニケーションはかなり簡単でした:ソケットが開かれ、あなたがそれを閉じるまで開くことは開いていて、あなたが送ったものを除いて情報が送信されていません。

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
.

この情報の解釈方法それをどうするか?

2番目の文字列をデバッグサーバから送信すると(Hercules Setup Utility)、Socketのonmessageイベントは起動されず、クライアントソケットはこの直後に接続を閉じます。

だから、HTML5 Webソケットが使用する前にいくつかのハンドシェイクを期待しているとします。どこについて読む場所?

BTW:私はRubyをサーバーサイド言語として使用しています。

役に立ちましたか?

解決

多くのWebソケットの例をテストしました....

あなたが説明したものから、「Webソケット」を使用しなかったが、単に「ソケット」、例えば。直接TCP / IP。WebSocket(例えば、「HTML Web Sockets」を呼び出すこと)は異なります。確立されたHTTP接続の上にあるようなソケットを作成するために使用されます。したがって、 "sec-websocket-key"などの "upgrade:WebSocket"ヘッダーを使用してHTTPクエリが表示されます。

接続を確立した後(サーバはコード101で応答を送信する)WebSocket接続には、データの独自のフレーミングとスクランブルがありますので、通常のソケットツールと一緒に使用することはできません。

http://tools.ietf.org/html/rfc6455 キーワードとして「WebSockets」を使用してください。その他のドキュメント、使用方法...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top