Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
メモ: この機能はウェブワーカー内で利用可能です。
WebSocket API は、ユーザーのブラウザーとサーバー間で対話的な通信セッションを開くことができるものです。この API を使用すると、サーバーにメッセージを送信し、サーバーから返信をポーリングすることなく応答を受信することができます。
WebSocket API は、ウェブソケット接続を作成して使用するための、WebSocket インターフェイスと WebSocketStream インターフェイスという 2 つの異なるメカニズムを提供しています。
それに加えて、WebTransport API が多くのアプリケーションで WebSocket API に取って代わることも予想されます。WebTransport は、汎用性の高い低レベル API で、背圧や、WebSocket や WebSocketStream では対応していない機能、例えば、一方向ストリーム、順不同配信、データグラムを介した信頼性の低いデータ転送など、他にも多くの機能を提供します。WebTransport は WebSocket よりも複雑で、ブラウザーの対応も限定的ですが、高度なソリューションの実装が可能です。標準の WebSocket 接続が用途に適しており、幅広いブラウザーとの互換性が必要な場合は、WebSockets API を用いてすばやく実装し、実行することができます。しかし、アプリケーションに標準以外のカスタムソリューションが要求される場合は、WebTransport API を使用すべきでしょう。
メモ: ページに開いた WebSocket 接続がある場合、ブラウザーはそのページを bfcache に追加しない可能性があります。したがって、ユーザーがページの利用を完了した際には接続を閉じることを推奨します。詳細は bfcache の操作を参照してください。
WebSocket サーバーに接続し、その接続を通じてデータを送受信するための主要インターフェイス
WebSocketStreamWebSocket サーバーに接続するためのプロミスベースのインターフェイス。ストリームを使用して接続上のデータの送受信を行います。
CloseEvent接続が閉じた時に WebSocket オブジェクトによって送信されるイベントです。
MessageEventサーバーからメッセージを受信した時に WebSocket オブジェクトによって送信されるイベント
WebSocket のハンドシェイクでは、HTTP ヘッダーが使用されます。
Sec-WebSocket-Keyクライアントからのノンスを保持する HTTP リクエストヘッダー。 これは、WebSocket 開始時のハンドシェイクで使用され、クライアントが明示的に WebSocket を開く意図があることを確認します。 ブラウザーによって自動的に追加されます。 ブラウザーによって自動的に追加されます。
Sec-WebSocket-AcceptWebSocket の開くためのハンドシェイクで使用する HTTP レスポンスヘッダーで、サーバーが WebSocket 接続へのアップグレードを望んでいることを示します。 ディレクティブの値は、対応するリクエストの Sec-WebSocket-Key の値から計算されます。
Sec-WebSocket-Versionリクエストで、クライアントが理解する WebSocket プロトコルのバージョンを示す HTTP ヘッダー。 レスポンスでは、リクエストされたプロトコルバージョンがサーバーで対応していない場合にのみ送信され、サーバーが対応しているバージョンが掲載されています。
Sec-WebSocket-Protocolリクエストでは、クライアントが対応しているサブプロトコルを推奨する順番で示す HTTP ヘッダーです。 レスポンスでは、サーバーがクライアントの環境設定から選択したサブプロトコルを示します。
Sec-WebSocket-Extensionsリクエストでは、クライアントが対応している WebSocket 拡張機能を推奨する順番で示す HTTP ヘッダーです。 レスポンスでは、サーバーがクライアントの環境設定から選択した拡張機能です。
| WebSockets # the-websocket-interface |
Enable JavaScript to view this browser compatibility table.
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2025年9月17日 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.