[2] opcode
は、 0xA
です >>1。
制御フレームです。
[3] 応用データは、返信元のPing
フレームの応用データでなければなりません >>1。
[4] Ping
フレームを受信したら、Pong
フレームを送信しなければなりません。
以前のフレームにまだ返信していないなら、直近のものにのみ送信しても構いません >>1。
[9] ただし WebSocket接続失敗後は送信してはなりません >>8。
[6] 要求がなくても送信しても構いません (unsolicited Pong frame) >>1。
[11] 利用者エージェントは、必要に応じて (NAT に接続を保持させるため、 接続の切断を検出するためなどの目的で) Pongフレームを送信して構いません >>10。 しかしサーバーを助ける目的で送信してはなりません >>10。
[12] Pong
フレームを受信しても、何もしなくて構いません。
[13] Ping
フレームと同じ応用データを含めなければならないということは、
自身が送信したものと同じものが返ってくるかチェックして、時間を計測するなどの使い方が想定されていそうです。
しかしそのように使わなければならない義務があるわけではありません。