2

特定のアクションで特定のjavascriptを実行できるように、単純なfayeリアルタイムベースの通知システムを構築しようとしています.fayeのドキュメントを読んだ後、どの道を進むべきかわかりませんが、実装に問題があります。

現在の考えは

  • ログインしたユーザーごとに 1 つの一意の faye チャネル。特定のユーザーのみにアクション (ポップアップ、テキストの設定) をプッシュできます。
  • テキストを書き込むことができるアプリ レイアウトの 1 つの div
  • ポップアップのレイアウトを保持するアプリ内の 1 つの div

今、faye に関する railscast チュートリアルを見てきましたが、ryan はコントローラー/アクション メソッド create から動作します。私はデータベースに何かを挿入したくありません。どこからでもJS関数を呼び出すだけです(アプリケーションヘルパーを構築するのは良い考えだと思います)。 JavaScript 'show_popup'

Faye でそのような機能を構築する最善の方法は何でしょうか。基本的には、

  • 特定の Faye チャネルで JavaScript 関数を実行する

ポップアップとテキスト メッセージを実現します。これについて少し迷った人は、私を正しい方向に向けることができますか、それともすでにそのような機能を構築していますか? 前もってthx!

4

1 に答える 1

4

サーバー側では、次のことができます (これには eventmachine が必要です)。

client = Faye::Client.new('http://localhost:9292/faye')
client.publish('/notifications/1', 'alert(1);')

または HTTP 経由:

message = {:channel => '/notifications/1', :data => 'alert(1);'}
uri = URI.parse("http://localhost:9292/faye")
Net::HTTP.post_form(uri, :message => message.to_json)

次に、クライアント側で、データを使って何でもできます。

var client = new Faye.Client('http://localhost:9292/faye');
client.subscribe('/notifications/1', function(data) {
  eval(data);
});

alert(1);実行したいJSに置き換えるだけです。

于 2011-11-24T10:48:04.980 に答える