WebSocket のバックアップソース(No.3)

#author("2022-08-18T16:18:33+09:00","default:k1rou","k1rou")
*WebSocket とは [#l7d626dd]
-Webブラウザとサーバ間でソケット接続を確立して、1つのTCPコネクション上で双方向通信を行う通信プロトコル

-リアルタイム性
-[[HTML5]]から派生した仕様
-API(JavaScript等)の仕様はW3Cが規定
-プロトコルの仕様はIETFが規定
-RFC6455
-接続時にHTTPのポート(80)で受け取ったリクエストをWebSocketにアップグレードする。同じポートで持続できる。

*特徴 [#wf8be21a]
-TCP接続が持続
-サーバからクライアントにデータを送信できる
-接続後はデータ量が少なくなる(ヘッダ情報の省略とバイナリ化による)
-クロスオリジンを安全に扱える

*クライアント側の作り [#r12c2b0c]
**接続(ハンドシェイク) [#w1ff0db1]
-onopenイベントハンドラが実行される

**送信 [#z7a769d1]
-send()
-引数は、文字列、Blob、ArrayBuffer、ArrayBufferView

**受信 [#u5e14a34]
-onmessageイベントハンドラが実行される

*ライブラリ [#ic31eafd]
-Socket.IO

*関連仕様 [#j0b54e4d]
-WebSocket Extension
-Subprotocol

*関連用語 [#w66710bc]
-[[Ajax]]
-[[XMLHttpRequest]]
-[[XHR2]]
-Server-Sent Events
-[[HTTP/2]]