WebSocket
HTTPの通信を装うことで、HTTPの仕組み上で双方向通信を実現させている。 ハンドシェイク
Req
GET /resource HTTP/1.1\r\n
host: example.com\r\n
upgrade: websocket\r\n
connection: upgrade\r\n
sec-websocket-version: 13\r\n
sec-websocket-key: E4WSEcseoWr4csPLS2QJHA==\r\n
\r\n
sec-websocket-versionヘッダはNonce
Res
HTTP/1.1 101 OK
upgrade: websocket\r\n
connection: upgrade\r\n
sec-websocket-accept: 7eQChgCtQMnVILefJAO6dK5JwPc=\r\n
\r\n
データ転送
オーバーヘッドが少ない
の2段階
実装
典型的な JavaScript クライアント
WebSocket プロトコルが最も影響を与える環境が JavaScript であることは疑いようがなく、API は驚くほど単純です。図 1 のサーバーに接続するために必要なのは、以下ですべてです。
var ws = new WebSocket("ws://localhost:8000/ws/");
ws.onmessage = function (args)
{
var time = args.data;
...
};
サンプル: サーバレスなリアルタイムチャットアプリケーションの構築