4

Chromium でこのコード変更に遭遇しました。Chromium は両方のハンドシェイク バージョンをサポートするようになりましたが、これはコードで確認されているようです。ウィキペディアの 2 番目のバージョン(draft-ietf-hybi-thewebsocketprotocol-06) を意味します。

ただし、サーバーに接続すると、次のヘッダーを含む古いバージョンしか取得できません。

Sec-WebSocket-Key1: 4 @1  46546xW%0l 1 5
Sec-WebSocket-Key2: 12998 5 Y3 1  .P00

ただし、以下を含むリクエストとなる新しいバージョンではありません:

Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==

ここで何が欠けていますか?最新のナイトリー ビルドをダウンロードしましたが、2 週間以上前に含まれていたので、それが原因ではないと思います。

WebSocket に新しいハンドシェイク バージョンを送信させるにはどうすればよいですか?

4

2 に答える 2

4

投稿したコード リンクは、ハンドシェイクのサーバー側用です (これは、リモート デバッグや拡張機能のプロキシとして Chrome で使用される可能性が高い場所がいくつかあります)。

本当に新しい HyBi-07 プロトコル バージョンを使用したい場合は、私が作成した web-socket-js のこのブランチを使用してみてください。Chrome が新しいプロトコルに切り替わると、web-socket-js もデフォルトで切り替わります。既に WebSockets をサポートしているブラウザーで web-socket-js を機能させるには、WebSocket の代わりに別のオブジェクト名を使用するように微調整する必要があります。

近いうちに Chrome/WebKit に新しいプロトコルが追加されると思います。バイナリ サポートを追加するためのAPI の変更は最近決定されたばかりであるため、API がプロトコルによって有効化された新しい機能を完全にサポートする前に、Chrome に新しいプロトコルが追加される可能性があることに注意してください。

于 2011-05-31T18:42:48.307 に答える
1

07 プロトコルを実装している私が知っている唯一のブラウザーは、FF4 のこのビルドです。

http://www.ducksong.com/misc/websockets-builds/ws-07/

于 2011-06-02T20:55:39.850 に答える