最近のWebSocket事情についてまとめとく

來源:互聯網
上載者:User
最近のWebSocket事情についてまとめとく

HTML5, WebSocket

id:Jxck(@Jxck_)さんからのリクエストもありましたので、現狀でのWebSocket情報をまとめておきます。

※この情報は2010/9/1時點のものです。ご覧になっている時點の情報とは変わっている可能性があります。

※2010/9/1:いろいろ更新しました。

ざっくり説明

一言で説明すると、WebServerとWebBrowser用の雙方向通訊用のプロトコル。

Server側からのプッシュができるので、XHRでポーリングする必要がない。

現行のWebSocket対応ブラウザ側には,same originポリシーによる制限はないようです。

仕様

最新版の仕様を確認してください。

The WebSocket API

日本語版は以下を參照

  • Web Socket protocol — websocket_jp v0.44 documentation
  • W3C - 『The Web Sockets API』日本語訳 - HTML5.JP

「仕様だけじゃよう分からん!」という人は以下を読むといいかも

  • 書籍(Amazon.co.jp: HTML5&API入門: 白石 俊平, 株式會社あゆた: 本)
  • 特集:Jettyで始めるWebSocket超入門|gihyo.jp … 技術評論社

※とりあえず一度動かしてみるとどんなものかわかるきがする。

大きな仕様変更

近頃仕様が大きく変わりました。draft75以前とdraft76以降はほぼ別ものです。

おおまかにいうと、ブラウザからサーバにつなぐときにハンドシェイクが必要なのですが、ハンドシェイクするときのヘッダ情報がかわりました。

詳しくは以下サイトを參照。

  • 「続・ハイパフォーマンスWebサイト」に書かれたWebSocket記事への更新 - Nothing ventured, nothing gained.
  • WebSocket Draft75 « ケンタテクブロ
  • Jettyで始めるWebSocket超入門:第6回 アプリケーションの作成と配布物の產生|gihyo.jp … 技術評論社

下の記事をみた感じだとまだまだ今後も仕様が変わりそうですね。

  • こてさきAjax:WebSocketプロトコルのframe仕様が変更されそう - livedoor Blog(ブログ)

Serverの対応情報

今のところ私が把握しているサーバ実裝です。

  • Python

    • pywebsocket
    • django-websocket
    • gunicorn
    • meinheld
    • tornado
    • cyclone
    • txwebsockets
  • Java
    • Jetty
  • Ruby
    • em-eventmachine
    • rev-websocket
  • JavaScript
    • node.js+Socket.IO
  • Go
    • Go langのwebsocket
  • Erlang
    • MochiWebでの実裝
    • shirasu - Project Hosting on Google Code→Erlangの軽量HTTPライブラリMisultinをベースにしたWebSocketフレームワークになる予定だそうです(Thanks!id:MiCHiLUさん)
  • PHP
    • phpwebsocket - Project Hosting on Google Code
  • Perl
    • typester’s anyevent-websocket-demo at master - GitHub
    • clkao’s Web-Hippie at master - GitHub
  • Clojure
    • http://github.com/ztellman/aleph:aleph

※最新版仕様の実裝はpywebsocket,Goが対応が早かった。Chromeの実裝確認用?( WebSocket draft 76 のサーバサイドの実裝始めた方いますか? - html5-developers-jp | Google グループ )

※node.js+Socket.IO+Socket.IO-nodeはAdobe Flash Socketを使うことで、IEなど未対応のブラウザとも通訊できるようにしています!素敵!(參考->node.jsのSocket IO-nodeでWebSocket - but hopeful)

Browserの対応情報

現狀では75以前と76以降の両方に対応しているブラウザはありません。

各ブラウザは最新版の仕様に追従しているみたいですね。

Browser 75以前 76
IE6~8 × ×
Firefox3 × ×
Firefox4 ×
Opera10.6 × ×
Safari5 ×
Chrome4,5 ×
Chrome6 ×

※websocket.js(http://github.com/gimite/web-socket-js/)を使うことで、IEなど未対応のブラウザとも通訊できる様子。上述のSocket-IO-Nodeも使っています。

ちょっと気になる発言をTwitterで発見!


web-socket-js URL でFlash fallbackが出來るのは良いんだけど。。。 #wsbof

2010-08-31 19:34:24 via web


プロキシ問題。wss (port 443) を使えば良いのだけれど、Flash fallbackだと駄目だった。誰かが修正してくれたのだけれど、今度は自己署名証明書じゃないと動かない現象 orz #wsbof

2010-08-31 19:56:34 via web

どんなことに使われてるか

エコーサーバorチャットの例が多い感じ。面白そうな取り組みを紹介します。

  • KanasanさんのVNChttp://github.com/Kanasansoft/WebSocketRemote/downloads
  • ネットワーク上に流れるパケットを可視化するデモ・アプリケーションWebGL + WebSocket DEMO — Accense Technology, Inc.
  • こてさきAjax:HTMLプレゼンをWebSocketを利用し、iPhoneから操作するツールを作ってみました. - livedoor Blog(ブログ)
  • ServerからPushするサービスPusher - Realtime client push powered by HTML5 websockets, beyond AJAX
  • ChaosProxy
    • WebSocketクライアント実裝部分のソースがかなり有益http://github.com/yuiseki/chaos_proxy
その他
  • イベント

    • Tweetvite :: WebSocket BoF
  • Kanasanさんのまとめ記事

    • Shibuya.js beyond HTML5 の発表資料 (Kanasansoft Web Lab.)
  • id:makotoiのPusher紹介

    • http://www.slideshare.net/inouemak/building-realtimewebslide
  • WebSocket用ベンチマーク

    • makoto’s wsbench at master - GitHub

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.