概要
WebSocketは、ウェブブラウザなどのクライアントとサーバーの間で、
常に接続を維持しながら双方向通信を行うための仕組みです。
通常のWeb通信(HTTP)はリクエストとレスポンスで一回ごとのやりとりですが、
WebSocketは一度接続を確立すれば、クライアントとサーバーのどちらからでも自由にデータを送受信できます。
リアルタイム性が求められるチャット、ゲーム、株価表示、通知機能などに使われます。
正式名称
WebSocket(ウェブソケット)
略称
WS(ダブリューエス)
※技術的には「wss://(暗号化あり)」と「ws://(暗号化なし)」というURLスキームでも使われます。
特徴
- 常時接続(Persistent Connection):一度接続すれば切断されるまで通信を継続
- 双方向通信(Full Duplex):クライアント・サーバーどちらからもデータ送信が可能
- リアルタイム性が高い:即時性のあるサービスに向いている
- 通信の軽量化:HTTPよりも通信のオーバーヘッドが少ない
- TCPベース:信頼性のあるデータ転送が可能
- HTTPとの違い:最初はHTTPで接続を開始し、途中でWebSocketに切り替える(ハンドシェイク)
具体例
- チャットアプリ:メッセージを送るとリアルタイムで相手に届く
- オンラインゲーム:プレイヤーの動きなどを即座にサーバーに反映
- 株価表示サイト:変動がリアルタイムで反映される
- 通知システム:新着情報を即時に通知する(SNSやメール通知など)
- 共同編集ツール:複数人でリアルタイム編集できるドキュメントやホワイトボード
関連用語
用語 | 解説 |
---|---|
HTTP | Webの基本的な通信方法。1回1回のリクエスト・レスポンスで構成される。 |
TCP | WebSocketが使う通信プロトコル。データの信頼性が高い。 |
ハンドシェイク | WebSocket接続の初期に行われる、HTTPからの切り替え処理。 |
リアルタイム通信 | 遅延がほとんどなく、即座にデータをやりとりする通信方式。 |
SSE(Server-Sent Events) | サーバーからクライアントへの一方向通信技術。WebSocketは双方向。 |
wss:// | 暗号化されたWebSocket通信(HTTPSに相当)。 |
ws:// | 暗号化されていないWebSocket通信(HTTPに相当)。 |