5

Faye を使用して、Rails でシンプルなチャット ルームを構築し、heroku でホストしようとしています。これまでのところ、Faye サーバーを稼働させ、インスタント メッセージングを機能させることができました。私が使用している重要なコード行は次のとおりです。

ページの読み込み時に起動される Javascript ファイル:

$(function() {
  var faye = new Faye.Client(<< My Feye server on Heoku here >>);
  faye.subscribe("/messages/new", function(data) {
    eval(data);
  });
});

ユーザーがメッセージを送信したときにトリガーされる create.js.erb

<% broadcast "/messages/new" do %>
  $("#chat").append("<%= j render(@message) %>");
<% end %>

すべてが正常に機能していますが、ユーザーがチャットから切断されたときに通知したいと思います。どうすればいいですか?

私はすでにFaye の Web サイトで monitoring について調べましたが、そのコードをどこに配置すればよいかわかりません。

4

2 に答える 2

6

イベントの監視は、rackup ファイルに入ります。これは私が本番環境で使用している例です:

Faye::WebSocket.load_adapter('thin')
server = Faye::RackAdapter.new(mount: '/faye', timeout: 25)

server.bind(:disconnect) do |client_id|
  puts "Client #{client_id} disconnected"
end

run server

もちろん、渡したブロック内で好きなことをすることができます#bind

于 2012-06-18T21:32:37.010 に答える
4

イベントの代わりにsubscribeおよびイベントにバインドすることもできます。faye monitoring docsの下部にある警告の言葉を読んでください。unsubscribedisconnect

これは私にとってはうまくいきました:

server.bind(:subscribe) do |client_id|
  # code to execute
  # puts "Client #{client_id} connected"
end

server.bind(:unsubscribe) do |client_id|
  # code to execute
  # puts "Client #{client_id} disconnected"
end

また、 private pub gemを使用することをお勧めします。これは faye アプリを保護するのに役立ちます。

于 2013-01-17T22:26:23.697 に答える