最終更新:
WebSocketの仕組みは?HTTP・SSEとの違いと再接続の注意
WebSocketは何ができるの?
最初の接続はどうする?
フレームは軽いの?
Socket.IOも同じ?
切れたら自動で戻る?
つながっていれば認証は終わり?
SSEとどちらがよい?
通信方式の比較
| 方式 | 更新の受け取り方 | 向いている条件 |
|---|---|---|
| ポーリング | 一定間隔でHTTP要求 | 更新が少なく、構成を単純にしたい |
| SSE | 開いたHTTP応答からサーバーが送信 | 主に通知・進捗・配信を受け取る |
| WebSocket | 接続上で双方がメッセージを送信 | 双方向で頻繁にやり取りする |
SSEのEventSourceには再接続の仕組みがありますが、過去イベントを再送するかどうかはサーバーの実装も必要です。通信路の復旧と、業務データの復旧は分けて考えます。
本番運用で確認すること
- 接続:プロキシやロードバランサーのアイドル時間、同時接続数。
- 再接続:待ち時間を徐々に増やし、一斉再接続の集中を避ける。
- データ:欠落・重複の扱い、受信量やメッセージサイズの上限。
- 認証:Origin、セッションの失効、操作ごとの権限、ログへの秘密情報混入。
プロトコルにはPing/Pongがありますが、ブラウザのJavaScript APIから直接操作できません。必要ならアプリのメッセージによる確認を設計します。WebSocketを採用しても、「必ず即時に一度だけ届く」という保証は得られません。
参考資料
確認日:2026年9月27日。製品の仕様・料金・対応環境は導入時にも確認してください。
- RFC 6455: WebSocket:HTTP/1.1の確立、フレーム、マスクとTLS。
- WHATWG: WebSockets:ブラウザAPIとPing/Pong。
- OWASP: WebSocket Security:Origin・認証・メッセージ認可と上限。
- Socket.IO: How it works:独自プロトコルと通信方式。
- WHATWG: Server-sent events:EventSourceの再接続とイベントID。
- RFC 8441:HTTP/2でのExtended CONNECT。