WebSocket API (WebSockets)

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

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

インターフェイス

WebSocket

WebSocket サーバーに接続し、その接続を通じてデータを送受信するための主要インターフェイス

CloseEvent

接続が閉じた時に WebSocket オブジェクトによって送信されるイベントです。

MessageEvent

サーバーからメッセージを受信した時に WebSocket オブジェクトによって送信されるイベント

ガイド

ツール

  • AsyncAPI: WebSocket のようなプロトコルに基づいたイベントドリブン型アーキテクチャを記述するための仕様です。 OpenAPI 仕様で REST API を記述するのと同じように、 WebSocket ベースの API を記述するために使用することができます。 WebSocket で AsyncAPI の利用を検討すべき理由利用する方法を紹介します。
  • HumbleNet: ブラウザーで動作するクロスプラットフォームのネットワークライブラリです。ブラウザー間の違いを抽象化する WebSocket や WebRTC の C ラッパー、ゲームやその他のアプリで複数ユーザーのネットワーク機能を作成するものから成ります。
  • µWebSockets: C++11 および Node.js で書かれた可用性の高い WebSocket サーバーとクライアントの実装です。
  • Socket.IO: 長いポーリングと WebSocket ベースのサードバーティ―の 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 に対応しています。
  • ZeroMQ: ZeroMQ は、インプロセス、IPC、TCP、UDP、TIPC、マルチキャスト、WebSocket でメッセージを伝送する組み込み可能なネットワーキングライブラリーです。
  • WebSocket King: WebSocket サーバーの開発、テスト、作業を支援するクライアントツールです。
  • PHP WebSocket Server: WebSocket の wss:// または ws:// および通常ソケットの ssl://, tcp:// を介して接続を処理するために PHP で書かれたサーバーです。
  • Channels: WebSocket(および長時間動作する非同期接続を必要とする他のプロトコル)の対応を追加する Django ライブラリーです。
  • Flask-SocketIO: Flask アプリケーションに、クライアントとサーバー間の低遅延な双方向通信を提供します。
  • Gorilla WebSocket: Gorilla WebSocket は、WebSocket プロトコルの Go による実装です。

関連トピック

仕様書

Specification
WebSockets Standard
# the-websocket-interface

ブラウザーの互換性

BCD tables only load in the browser

関連情報