スポンサーサイト

2013.04.13 Saturday

一定期間更新がないため広告を表示しています

|-|-|-|-|-|by スポンサードリンク

WebSocket で Web の通信が変わる

2010.11.30 Tuesday
ご無沙汰しています。
気づけば早いもので今年ももう残りわずかです。

さて、タイトルが少し大げさな感じになっていますが、実際その通りになると僕は思っています。

まず WebSocket を知らない人向けの話ですが、WebSocket(ウェブソケット) は HTML5 で実装される API の一つです。HTML5 で新たに実装される API の中では通信関係の API です。

WebSocket はクライアント側の実装と、サーバーサイドの実装が必要になります。
クライアント側では、今現在(2010年11月末)では、Google Chrome や Safari、iOS4.2(この件は後ほど) などで簡単に実装できます。
FireFox 等は β 版で動作が可能のようです。

サーバーサイドはまだ未成熟でこれといって代表的なミドルウェアはありません。
個人的に僕が好きなのは、Python で動作する下記二点です。

  1. gevent-websocket
  2. pywebsocket

1・2 番共に言えるのは比較的簡単に WebSocket のサーバーサイドアプリが書ける事です。
2 番の pywebsocket は mod_python 上で動くのですが、mod_python 自体が既に終了しています。
現在は、mod_python の代わりに mod_wsgi というのがあるのですが、pywebsocket では今現在サポートしていません。
しかし、pywebsocket は SSL のサポートをしているのも魅力的。apache 上で動作しているので、そのまま 80 ポートを使える点も良いですね。

開発スピード的には最近は pywebsocket も元気になっているようです。
(それでもどちらも実験段階のコードなので、プロダクトですぐ使えるというわけではない。)
(今後は WebSocket ミドルウェア戦争が始まりそうな予感。)

WebSocket の中の人の話はその辺で、WebSocket で何がどう変わるかと言いますと、サーバーからのプッシュ配信が可能になるという事です。
今までの Web の通信はプル型、つまり、自分でサーバーにリクエストして結果を待つというスタイルです。
プッシュ型とは、クライアントがリクエストを送らなくても、サーバー側がデータを送るという事です。

今までもこういった事は Web でできていました。
しかし、高価なソフト( FMS や FCS )を利用しなければならなかったり、Long Polling のようなオーバーヘッドが高い事をしなければなりませんでした。

そこで登場するのが、WebSocket です。

  1. 小さいオーバーヘッド
  2. 低いレイテンシ
  3. ブラウザが標準でサポート
  4. プラットフォームに依存しにくい
  5. Full-Duplex

4番の事がすごく実感できるのは、モバイルデバイスとの連携です。
最近リリースされた、iOS 4.2 では WebSocket のサポートがされたのですが(なぜこれを Apple が取り上げないのか不思議)、ほとんど PC ブラウザそのままのコードで WebSocket が動作します。
iOS 用に UI などのインターフェースはカスタマイズする必要はありますが、おそらく、PC 用に書いたコードがほとんどそのまま iOS で動作するのを見てデベロッパーは興奮すると思います。

iOS が搭載されているモバイルデバイスで、Flash(FMS)等を利用しないで、ブラウザだけでリアルタイム通信が可能なのです。
(ここで僕が言いたい、ネイティブコードから HTML5 へのシフトは話が長くなりそうなので別の機会に。)

っと、今回のお話はこの辺で終わります。
次回は実際のコードとサンプルを紹介できたらなと思います。
WebSocketcomments(0)trackbacks(0)|-|-|by ダニー
Check
 
プロフィール サイト内検索
1234567
891011121314
15161718192021
22232425262728
293031    
<< July 2018 >>
新しい記事 コメント
アーカイブ カテゴリ
オススメ
リンク モバイル
qrcode
Others Others
ムームードメイン
    

ページの先頭へ