如何通知使用Faye的网页上的特定用户?

问题描述:

我有一个问题。我正在使用faye,在本页面为所有客户端更新部分页面。但我很w。。我如何才能仅为特定用户更新页面的一部分。在我的情况下,我想通知用户有关新消息。但我不知道如何做到这一点。我只知道如何在特定页面上通知所有人。例如,在我的岗位模型我已创建JS如何通知使用Faye的网页上的特定用户?

<% broadcast "/posts/new" do %> 
$('#posts_list').prepend('<%= escape_javascript(render(@post)) %>'); 
$("#posts_list li:first").hide().fadeIn("slow"); 
<% end %> 

和广播功能是

def broadcast(channel, &block) 
     message = {:channel => channel, :data => capture(&block)} 
     uri = URI.parse("http://localhost:9292/faye") 
     Net::HTTP.post_form(uri, :message => message.to_json) 
end 

还我有一个王菲的客户端和代码

$(function() { 
    var faye = new Faye.Client('http://localhost:9292/faye'); 
    faye.subscribe("/posts/new", function(data){ 
    eval(data); 
    }); 
}); 

(这一切的事,根据到railscast。)

我需要怎么想?提前致谢!

+1

没有人知道? – Pavel 2012-02-23 21:38:58

我找到了解决这个问题的方法。宝石私人酒吧(https://github.com/ryanb/private_pub) 有助于做到这一点。 每个用户都在布局

<%= subscribe_to "/messages/#{current_user.id}" %> 

以及何时有人发送消息。在action.js(在我的情况下 - create.js)我做了这个

<% publish_to "/messages/#{@message.receiver.id}" do %> 
    ...some js code, in my case jquery notification plugin usage 
    <% end %> 

这对我很好。

+0

非常感谢这帮助了我的问题http://*.com/questions/27139950/private-messages-with-faye-and-rails/27142335#27142335 – 2014-11-26 06:01:06