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にあげてあります。いう感じでPlack::Server::Coroをお使いください。HTMLタグが使用できます。あなたのコメントを追加して下さい。