Posted in rails at 22:04:00 by ジュンヤ

ConnectiveChatというブラウザ上で動作するのだが、画面を再読み込みしたり、定期的にサーバーにポーリングすることなしに、即座にメッセージが表示されるチャットの存在を知った。このようなリアルタイムにページをアップデートする方法は、調べてみると、新しい Ajax のアプローチとして、Cometというらしい。

この Comet は、Rails ではJuggernautというプラグインで簡単に実現できるということなのでやってみた。Juggernautを使ってみる-Hello, world!が参考になる。

途中つまずいたのは、juggernaut_config.xml の設定。JuggernautのFAQページを読み違え、PUSH_PORTに1024番以上のポートを設定すべきところを間違えて適当に1024以下の空いてそうなポートを指定していた。

それと、Railsの開発環境だと、通常3000番台でアプリケーションを実行するので、

CROSSDOMAIN: “http://localhost/crossdomain.xml

CROSSDOMAIN: “http://localhost:3001/crossdomain.xml

などと修正しないとうまく動かない。

正しく動作すると、ページを開いたときに You have been connected というダイアログメッセージが表示される。

作ったサンプルのチャットページをおでかけマペタ内に置いてみた。おでかけマペタとは関係ないのだが、実際に動くさまを見たければ、http://odekake.mapeta.net/chat まで。異なるマシンから、あるいはブラウザの画面を二つ立ち上げ、このページを開いてチャットしてみれば、瞬時にチャットのメッセージが表示されるのがわかるかと思う。

railsカテゴリの最近の記事             

コメント・トラックバック(2) »

  1. 投稿者:masatobito

    2006/09/18 at 23:30:35

    Comet 使うとコネクションを開きっぱなしになるので、大規模アプリケーションは難しいですよね。

  2. 投稿者:jishiha

    2006/09/24 at 21:59:02

    自分用にメモです。Juggernaut を使ったデモ http://www.clockingit.com/comet

コメント・トラックバック

コメントを残す