「WebSocket」の版間の差分

提供: Node.js/JavaScript入門
移動: 案内検索
(ページの作成:「WebSocketとは、ブラウザとサーバの間で双方向通信を実現する仕組みです。AjaxやCometの課題を解決するために作られました。 ...」)
 
(相違点なし)

2014年9月6日 (土) 14:46時点における最新版

WebSocketとは、ブラウザとサーバの間で双方向通信を実現する仕組みです。AjaxやCometの課題を解決するために作られました。

読み方

WebSocket
うぇぶ そけっと

概要

WebSocketでは、サーバとクライアント(主にブラウザ)の間で、永続的なソケットを利用し、双方向通信を実現します。一度、接続してしまえば、サーバからのプッシュ通知も可能となります。

AjaxとCometの課題

Ajaxは、非同期通信のためにXMLHttpRequestオブジェクトを使用しています。通信の都度HTTPリクエストが発生し、通信コストが高いです。この方式は、クライアントからサーバに接続するモデルであるため、サーバ側からデータをプッシュできません。

Comet では、サーバからクライアントに任意のタイミングでレスポンスを返すため、HTTPロングポーリングと呼ばれる、HTTPの通信接続を確立しておき、レスポンスするまで接続を維持する方式です。この通信もまた、都度、再接続が必要となり、接続処理に無駄があります。

WebSocketのサーバ

WebSocketを使用したアプリケーションの開発には、WebSocketに対応するサーバが必要になります。たとえば、以下のソフトウェアを利用して、WebSocketを利用できます。

WebSocketのAPI

WebSocket API
メンバ 説明
WebSocket(url,protocol) WebSocketのコンストラクタ。
send(data) メッセージを送信する
close() WebSocketの接続を切断する。
onopen WebSocket の接続が確立したときに呼び出されるハンドラ
onclose WebSocket の接続が切断したときに呼び出されるハンドラ
onmessage WebSocket でメッセージを受信したときに呼び出されるハンドラ
onerror WebSocket でエラーがおきたときに呼び出されるハンドラ

URL

WebSocket URL
プロトコル 説明
ws:// WebSocketでの80ポートで通信。通信は、平文でおくられる。
wss:// WebSocketでの443ポートで通信。通信は、暗号化される。

開発に使うもの

関連項目