2011-01-20 7 views
6

Facebookのようなプッシュ通知システムを作成したいと思います。 Facebookがあなたに何かを伝えたいとき(投稿にコメントしたり、あなたにタグを付けたりなど)、画面の左下に小さな通知が表示されます。フェードインしてフェードアウトします。RailsとjQueryのFacebookと同様のプッシュスタイルの通知

jQueryとRailsでこのようなシステムを構築するにはどうすればよいですか?それはどのように機能しますか? JSは常に「新しい通知はありますか?」とサーバーに尋ねていますか?または何らかの形でサーバーををこのサービスにプッシュします。ユーザーが別のユーザー(例えば)メッセージを送信した場合

今、私は「あなたが新しいメッセージを持っている」と言って、ユーザのキューに通知を追加することができますが、それは、ページのリロードするまで表示されません。..

答えて

6

Juggernaut本当にクールに見える、私はそれが長い時間前にデモされたのを見ましたが、今はnode.jsの上に書き直されています。ニース。 redisとnode.jsをインストールしてnode.jsサーバーを実行する必要があり、残りは簡単ではありません。

Pusherapp.comもクールに見えますが、有料ですが、少なくとも余分なサービスをインストールして実行する必要はありません(デーモン化、スケーリングなど)。

しかし、負荷があまり大きくなければ、私は物事を単純に保ち、ちょうどjavascriptを使って投票したいと思うでしょう。あなたは簡単に自分自身を書くことができますが(それほど難しくありませんが)、jqueryのために既にとても良いプラグインがあります。例えば、PeriodicalUpdater。サイトの多くは、このような機能を実現

4

現在、このような問題は、Cometを使用することで解決できます。より多くの場合

http://en.wikipedia.org/wiki/Comet_(programming)

は基本的にブラウザがHTTPステートレスなプロトコルであるを使用して、それが唯一のリクエストで動作するため、応答はちょっと道、私たちは本当に本当のプッシュ通知を受け取ることはできません。ブラウザにプッシュしたいときには、何らかの形でTCP /ソケットを接続してプッシュする必要があります。彗星は、そのような技術を定義するために使用される単なる言葉です。

これを助ける多くの図書館があります。軌道に乗ったジャガーノートです。

新しいブラウザにはWebsockets Protocolと呼ばれるものがあります。私が言及したライブラリでもこれを利用しています。その広大な話題ですが、私はかなり確信しています.JuggernautとRailsでいくつかの基本的な例を見つけることができます。

http://pusherapp.comもありますが、それは同じことをしますが、お金を請求します。

2

もう一つの方法は、同期HTTP経由でボッシュ、または双方向の流れである:ここでは

http://en.wikipedia.org/wiki/BOSH

はそこにいくつかのJavaScriptライブラリの一つです:

http://code.stanziq.com/strophe/

このタイプのセットアップでは、バックエンドにxmpp/boshサーバーが必要ですが、基本的にブラウザは接続を開いています(彗星と非常に似ています)。 serはそれらを処理する。

このテクニックは、通知、チャット、およびリアルタイムで発生させたいことについて何でも使用できます。

関連する問題