WebSocketお勉強メモ。
WebSocketとは?
次世代のWeb用リアルタイム双方向通信プロトコル。2011/12/12にRFC6455になった。
今までのプロトコルとは何が違う?
- XmlHttpRequestを利用した非同期通信処理
- Javascriptにより部分的にページを更新する
- サーバー側からPushできない
- Comet
- サーバー側からPushするための仕組み
- 意図的にサーバーがレスポンスを保留し、変更があったら差分を返却
- リソース消費が大きい
- WebSocket
- ソケット通信。ハンドシェイクの時だけHTTPライクなリクエスト/レスポンス。その後は通信手段を意識する事無く双方向通信できる
- イベント駆動。接続・切断・データ受信・エラーイベントを検知して駆動
メリットは?
都度コネクションを張り直さないので、通信量が軽減される。
イベント駆動で効率よくリソースを使用できる。1つのセッションの処理が終わるまで他のセッションが待たされることがない。
スケールアウトは?
従来のロードバランサはステートレス用になっているため使用できない。RedisのPub/Subでどうにかできる…らしい。