FirehoseはWebSocketsを使わないリアルタイム通信ライブラリです。

Webベースのリアルタイムコラボレーションを実現させるためにはWebSocketsを使うのが手軽ですが、レガシーなWebブラウザでは使えません。そこでロングポーリングを手軽に実装できるのがFirehoseです。


サーバを起動しました。


クライアントから接続しています。


別なクライアントからデータを送信します。


データを得ました。ここで一旦接続は切れます。

Firehoseのデフォルトの動作ではデータを受け取ったタイミングで一旦接続が切れるようになっています。別途用意されているRackアプリケーション用のJavaScriptライブラリを使うと、接続が切れても自動的に再接続を開始します(その間にデータがポストされているとすぐに受け取ります)。Firehoseはレガシーなブラウザや接続が持続的でない環境下でもリアルタイムコラボレーションが実現できるでしょう。

FirehoseはRuby製のソフトウェア(ソースコードは公開されていますがライセンスは明記されていません)です。

MOONGIFTはこう見る

WebSocketsを使うとこれまでとは全く違うWebアプリケーションが組めるようになります。そうした技術は積極的に取り入れていきたい一方、Webブラウザのサポート具合によって選択できないというケースが多いようです。そんな時の選択肢は4つ考えられます。

一つ目はWebブラウザによって技術を変える方法。この場合はメンテナンスコストが増えます。もう一つはレガシーなWebブラウザでも使える技術にする方法。そしてFlashを使うなど他の代替技術を利用する方法、そして最後はレガシーなWebブラウザを切り捨てる方法です。いずれかの選択をすることでチャレンジができます。中途半端な選択が最も危険で停滞を生み出すでしょう。

polleverywhere/firehose