WebSocket
提供: Node.js/JavaScript入門
2014年9月6日 (土) 14:46時点におけるDaemon (トーク | 投稿記録)による版 (ページの作成:「WebSocketとは、ブラウザとサーバの間で双方向通信を実現する仕組みです。AjaxやCometの課題を解決するために作られました。 ...」)
スポンサーリンク
WebSocketとは、ブラウザとサーバの間で双方向通信を実現する仕組みです。AjaxやCometの課題を解決するために作られました。
読み方
- WebSocket
- うぇぶ そけっと
概要
WebSocketでは、サーバとクライアント(主にブラウザ)の間で、永続的なソケットを利用し、双方向通信を実現します。一度、接続してしまえば、サーバからのプッシュ通知も可能となります。
AjaxとCometの課題
Ajaxは、非同期通信のためにXMLHttpRequestオブジェクトを使用しています。通信の都度HTTPリクエストが発生し、通信コストが高いです。この方式は、クライアントからサーバに接続するモデルであるため、サーバ側からデータをプッシュできません。
Comet では、サーバからクライアントに任意のタイミングでレスポンスを返すため、HTTPロングポーリングと呼ばれる、HTTPの通信接続を確立しておき、レスポンスするまで接続を維持する方式です。この通信もまた、都度、再接続が必要となり、接続処理に無駄があります。
WebSocketのサーバ
WebSocketを使用したアプリケーションの開発には、WebSocketに対応するサーバが必要になります。たとえば、以下のソフトウェアを利用して、WebSocketを利用できます。
- node.js
- Jetty
- PHP Websocket Class
WebSocketのAPI
メンバ | 説明 |
---|---|
WebSocket(url,protocol) | WebSocketのコンストラクタ。 |
send(data) | メッセージを送信する |
close() | WebSocketの接続を切断する。 |
onopen | WebSocket の接続が確立したときに呼び出されるハンドラ |
onclose | WebSocket の接続が切断したときに呼び出されるハンドラ |
onmessage | WebSocket でメッセージを受信したときに呼び出されるハンドラ |
onerror | WebSocket でエラーがおきたときに呼び出されるハンドラ |
URL
プロトコル | 説明 |
---|---|
ws:// | WebSocketでの80ポートで通信。通信は、平文でおくられる。 |
wss:// | WebSocketでの443ポートで通信。通信は、暗号化される。 |
開発に使うもの
関連項目
ツイート
スポンサーリンク