2012-02-23 2 views
4

질문이 있습니다. 나는이 페이지에서 모든 클라이언트의 페이지 일부를 업데이트하기 위해 faye를 사용하고있었습니다. 그러나 나는 woundering입니다. 특정 사용자에 대해서만 페이지의 일부를 업데이트 할 수 있습니까? 필자의 경우 새 메시지에 대해 사용자에게 알리고 싶습니다. 그러나 나는 이것을 어떻게하는지 모른다. 나는 특정 페이지에서 모든 사람들에게 알리는 방법 만 알고있다. 예를 들어, 내 게시물 모델에서 나는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); 
    }); 
}); 

(모든 일이 이루어졌다 따라했다입니다 JS을 만들 수 있습니다)

내가 생각할 필요가있는 방법은 무엇입니까? 미리 감사드립니다!

+1

아무도 모른다. ??? – Pavel

답변

3

이 문제를 해결하는 방법을 찾았습니다. 보석 전용 술집 (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://stackoverflow.com/questions/27139950/private-messages-with-faye-and-rails/27142335#27142335 –