ホーム > perl > JSocketを使ってPOSTもストリーミングするPlackアプリ

JSocketを使ってPOSTもストリーミングするPlackアプリ

  • 投稿者: chiba
  • 2009/10/20 火曜日 3:58:37
  • perl

さて、前エントリJSocketというのを作ったと書いたのですが、これは実はjavascriptで動くtwitter streamクライアントを作るならばmultipart/mixedを使うべきというのを読んで、レスポンスがpollではなくてストリーミングできるというのを知って、リクエストもやりたいよというふうに思ったのがきっかけでした。

まず、XHRでできないかを試してみたのですが、xhr.send(data)を一回読んでしまうと少なくともjavascript側ではリクエストは完了したと思ってしまって、再度xhr.send(data)しても反応はありませんでした。

そこでJSocketの登場です。JSocketを使うとhttpリクエストを断続的に送信することができます。やったですね。

で、Plack::Server::Coroを使って試しに
リアルタイムチャット
を作ってみました。どうぞお試し下さい。レスポンスもJSocketを使っていますのでmultipartに比べてboundary分お得だったりもします。テキストエリアに入力された文字がストリーミングで送信され、また他人のデータもストリーミングで受信できていると思います。ちなみに自分の発言もサーバから持ってきてるので一人でも確認できます。

ちなみにこれを1つのコネクションでやってしまおうというのがWebsocketなんだろうという認識ですね。ただwebsocketはhttpの上に一応のってますがハンドシェイク以外の部分はhttp/1.0やhttp/1.1的には正しくないでしょうし、JSocketでの二重接続であれば正しいhttpとしてふるまえるはずで、現行のapacheやproxy等でも扱える可能性があったりします。

あ、チャットのサンプルコードもgithubにあげてあります。

plackup -s Coro --app chat.psgi 

という感じでPlack::Server::Coroをお使いください。

はてなブックマーク - JSocketを使ってPOSTもストリーミングするPlackアプリ

コメント:0

コメントフォーム
入力した情報を記憶する

トラックバック:1

この記事のトラックバック URL
http://blog.everqueue.com/chiba/2009/10/20/371/trackback/
トラックバックの送信元リスト
JSocketを使ってPOSTもストリーミングするPlackアプリ - へぼい日記 より
pingback - へぼへぼCTO日記 – JSocketを使ってPOSTもストリーミングするPlackアプリ « とっても! ちゅどん(雑記帳) より 2009/10/20 火曜日

[…] へぼへぼCTO日記 – JSocketを使ってPOSTもストリーミングするPlackアプリ へぼへぼCTO日記 – JSocketを使ってPOSTもストリーミングするPlackアプリ […]

ホーム > perl > JSocketを使ってPOSTもストリーミングするPlackアプリ

検索
フィード
メタ情報

ページの上部に戻る