受信したPongを対応するPingと一致させるプロトコルを実装しようとしています。
しかし、送信したのにPongを受信しなかったPingについてはどうすればよいですか?これは起こり得ますか?または、すべてのpingに対応するPongがあり、Pongを受信しない場合は、接続が失われていることを示していることが保証されていますか?WebSocketプロトコルドキュメントはこれに関して沈黙しています。
受信したPongを対応するPingと一致させるプロトコルを実装しようとしています。
しかし、送信したのにPongを受信しなかったPingについてはどうすればよいですか?これは起こり得ますか?または、すべてのpingに対応するPongがあり、Pongを受信しない場合は、接続が失われていることを示していることが保証されていますか?WebSocketプロトコルドキュメントはこれに関して沈黙しています。
準拠するWebSocket実装は、pingを受信するとポンを返す必要があります。一般に、妥当な時間が経過してもピンポンが発生しないということは、リモートエンドポイントでネットワークエラーまたは他の何かがビジーであるか壊れていることを意味します。いくつかの注意点があります。
WebsocketはTCPプロトコルに基づいており、すべてのパケットが順番に処理され、受信データの処理を続行する前に、失われたパケットまたは破損したパケットが再送信されます。
したがって、pongが欠落している場合に考えられる唯一の説明は、接続の反対側でのping/pongプロトコルの実装のエラーです。
TCPプロトコルの信頼性とその順序は、Webブラウジング中に簡単に確認できます。インターネット接続が悪いと、進行中にWebサイトの読み込みが中断される可能性がありますが、読み込みを行う部分は常に正しい順序であり、errohEThgf%$ / GHfDw(&IjfdsAyW$§REggnfdER§$HHxM + FD5