WebSocket API (WebSockets)

WebSocket API は、ユーザーのブラウザーとサーバー間で対話的な通信セッションを開くことができる先進技術です。この API によって、サーバーにメッセージを送信したり、応答をサーバーにポーリングすることなく、イベント駆動型のレスポンスを受信したりすることができます。

メモ: WebSocket のコネクションは機能的にどこか標準 Unix スタイルのソケットに似ていますが、関連はありません。

インターフェイス

WebSocket
WebSocket サーバに接続し、その接続を通じてデータを送受信するための主要インターフェイス
CloseEvent
接続が閉じた時に WebSocket オブジェクトによって送信されるイベントです。
MessageEvent
サーバーからメッセージを受信した時に WebSocket オブジェクトによって送信されるイベント

ガイド

ツール

  • HumbleNet: ブラウザーで動作するクロスプラットフォームのネットワークライブラリです。ブラウザー間の違いを抽象化する WebSocket や WebRTC の C ラッパー、ゲームやその他のアプリで複数ユーザーのネットワーク機能を作成するものから成ります。
  • µWebSockets: C++11 および Node.js で書かれた可用性の高い WebSocket サーバーとクライアントの実装です。
  • ClusterWS: Node.js でスケーラブルな WebSocket アプリケーションを構築する、軽量で高速で強力なフレームワークです。
  • CWS: Node.js のための高速な C++ による WebSocket の実装です (uWebSockets v0.14 のフォーク)
  • Socket.IO: 長いポーリングと WevSocket ベースのサードバーティ―の Node.js 用転送プロトコルです。
  • SocketCluster: スケーラビリティに焦点を当てた Node.js 用の pub/sub WebSocket フレームワークです。
  • WebSocket-Node: Node.js 用の WebSocket サーバー API 実装です。
  • Total.js: Node.js 用の ウェブアプリケーションフレームワーク(使用例: WebSocket chat)
  • Faye: Node.js 用の WebSocket (双方向接続) と EventSource (片方向接続) サーバーおよびクライアント
  • SignalR: SignalR は単一のコードだけで、もし WebSockets が使用可能な場合、基盤として WebSockets を使用し、そうでない場合はほかの代替技術にフォールバックします。
  • Caddy: WebSocket として任意のコマンド (stdin/stdout) を中継することができるウェブサーバーです。
  • ws: Node.js のための有名な WebSocket クライアント&サーバーライブラリです。
  • jsonrpc-bidirectional: 非同期の RPC で、単一の接続を用いて、サーバー上にエクスポートされた機能と、同時にクライアント上のものがあります (クライアントがサーバーを呼び出すことができ、サーバーもクライアントを呼び出すことができます)。
  • cowboy: Cowboy は高速で最新の HTTP サーバーで、 Erlang/OTP のためのものであり、 WebSocket に対応しています。

仕様書

仕様書 状態 備考
HTML Living Standard
WebSocket API の定義
現行の標準
WebSockets Candidate Recommendation
RFC 6455: The WebSocket Protocol IETF RFC

ブラウザーの互換性

BCD tables only load in the browser

関連情報