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

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

  • 2009-10-20 (火) 3:58
  • perl
  • hatena count

さて、前エントリ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をお使いください。

Comments:0

Comment Form
Remember personal info

Trackbacks:1

Trackback URL for this entry
http://www.geminium.com/chiba_blog/2009/10/20/371/trackback/
Listed below are links to weblogs that reference
JSocketを使ってPOSTもストリーミングするPlackアプリ from へぼへぼCTO日記
pingback from へぼへぼCTO日記 – JSocketを使ってPOSTもストリーミングするPlackアプリ « とっても! ちゅどん(雑記帳) 09-10-20 (火) 15:06

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

add to hatena hatena.comment (28) add to del.icio.us (0) add to livedoor.clip (2) add to Yahoo!Bookmark (0) Total: 30

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

Search
Feeds
Meta

Return to page top