4

Gorilla Websockets Projectによると、 golang.org/x/net/websocketを使用して ping と pong を送信することはできません。同時に、以下はgolang.org/x/net/websocketのプロジェクト ページにあります。

パッケージ websocket は、RFC 6455 で指定されている WebSocket プロトコルのクライアントとサーバーを実装します。

私は少し混乱しています。golang.org/x/net/websocketは RFC 6455 を実装していますが、制御フレーム (cancel、ping、pong) を送信できませんが、これはRFC 6455 - Section Control Framesで指定されています。

golang.org/x/net/websocketパッケージを使用するとどうなるでしょうか。タイムアウト後に接続は中止されますか? 言い換えれば、接続が切断されないことをここでどのように保証しますか。

4

1 に答える 1

8

Gorilla Websockets Project によると、golang.org/x/net/websocket を使用して ping と pong を送信することはできません。

Gorilla README は別のことを言っています。golang.org/x/net パッケージはping を送信したり、 pong を受信したりできないと書かれています。パッケージがポンを送信しないとは言っていません。

golang.org/x/net パッケージは、Gorilla パッケージと同様に、pong をピアに送信することで、ピアから受信した ping に自動的に応答します。どちらのパッケージも、接続を維持するために ping と pong を使用しているピアで正しく動作します。

golang.org/x/net/websocket パッケージを使用するアプリケーションは、接続を維持するために ping と pong を使用できません。ping を送信する方法はありません。Pong が受信されたことを検出する方法はありません。

于 2015-07-07T11:26:52.777 に答える