#author("2022-09-04T22:07:24+09:00","default:k1rou","k1rou") #author("2023-02-24T09:46:22+09:00","default:k1rou","k1rou") *WebSocket とは [#l7d626dd] -Webブラウザとサーバ間でソケット接続を確立して、1つのTCPコネクション上で双方向通信を行う通信プロトコル -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]]