![]() |
To enable Web applications to maintain bidirectional communications with server-side processes, this specification introduces the WebSocket interface. |
現行のJavaScript AjaxアプリケーションはXMLHttpRequestをサーバとの非同期通信メソッドとして使っている。ブラウザからサーバへのアクセスが基本であり、サーバからはリクエストへの返信という形でデータがやりとりされる。HTTP通信が基本であるため、リクエストを出すごとにHTTPのやりとりが実施される。
この状況を改善するためにW3Cで策定が進められている仕様のひとつにThe Web Sockets APIがある。Web Sockets APIはブラウザとサーバの双方向通信を規定するもので、Webアプリケーションの開発をより簡単にし、動作をよりシンプルで高速なものにする。XMLHttpRequestと違いWeb Sockets APIでは通信が双方向になり、リクエストに返信する形ではなくサーバからブラウザへ直接データを送れるようになる。サーバからのデータを受け取るとJavaScriptにおけるイベントとして処理される。
| WebSocketインタフェース | 名前 | 型 | 備考 |
|---|---|---|---|
| コンストラクタ | WebSocket(DOMString url) | ||
| WebSocket(DOMString url, DOMString protocol) | |||
| 定数 | CONNECTING = 0 | unsigned short | |
| OPEN = 1 | unsigned short | ||
| CLOSED = 2 | unsigned short | ||
| 属性 | URL | DOMString | リードオンリー |
| unsigned short | readyState | リードオンリー | |
| unsigned long | bufferedAmount | リードオンリー | |
| onopen | Function | ||
| onmessage, onclose | Function | ||
| onclose | Function | ||
| 関数 | send(DOMString data) | ||
| close() |
ブラウザにおけるWeb Sockets APIの実装は現在開発段階にあるが、Chromium Blog: Web Sockets Now Available In Google ChromeによるとChrome 4.0.249.0にWeb Sockets APIの実装を追加されたという。Web Sockets APIを試してみるにはHTTPサーバ側での対応も必要になるが、pywebsocketを使うことで実現できるとも説明されている。pywebsocketはPythonで実装されたApache HTTPサーバのモジュールとして動作するWeb Sockets API対応拡張。スタンドアロンでサーバとして動作することもできるという。
Web Sockets APIの実装はFirefoxでも2009年のはじめから進められているが、執筆現在ではまだ開発版にはマージされていない (Bug 472529 – Support for Web sockets' HTML5 Draft Recommendation (websocket))。しかし、Firefoxへのマージはそう遠い先のことではないように見える。
Web Sockets APIを使った通信ではThe Web Socket protocolと呼ばれる専用のプロトコルが利用される。HTTPと違い通信を開始したらクローズするまでは通信が保持されるため、XMLHttpRequestよりも通信効率がいい。また、ブラウザと同じレベルでのセキュリティを提供する必要があることからTCPを直接利用するような仕組みではなく、独立したプロトコルとして定義されている。Web Sockets APIの実装にはブラウザが提供することになるとみられるが、JavaScriptで同機能を実装したライブラリもある。
| トマトを食べれば痩せられる!? -京大ら、新発見の成分で肥満改善効果を実証 [21:00 2/10] |
| JAXA、液体シリコン中に残存する共有結合を観察 -大口径ウェハの実現に期待 [20:11 2/10] |
| NEDOなど、熱膨張が小さな樹脂複合材料ペレットの量産化に成功 [19:22 2/10] |
| 理研、一般顕微鏡を蛍光顕微鏡に強化できるアダプタを試作して性能を実証 [19:15 2/10] |
| 天の川のブラックホールが小惑星を飲み込んでいる - NASAが発表 [18:08 2/10] |
|
『逆転裁判』初日舞台挨拶に成宮寛貴が登場!「ヤバイと思った」 [16:08 2/11] キャリア |
|
【エンタがビタミン♪】「少しでもキレイに見せたくて」。バナナマン日村のTシャツの下に隠された秘密。 [16:06 2/11] キャリア |
|
【イタすぎるセレブ達・番外編】全世界騒然! ビヨンセとJay-Zが、長女ブルー・アイヴィーちゃんの写真を初公開! [16:06 2/11] キャリア |
|
やっぱり黒髪美人!?黒髪のメリット&デメリット! [16:06 2/11] キャリア |
|
スバルBRZ&トヨタ86のアライメント調整はどうする? [16:05 2/11] キャリア |