2015-08-11 5 views
0

я не знаю, как опубликовать некоторые данные с сервера рельсов, я хотел бы сделать то же, как и в JSRails - Faye толкающего данные

var publication = client.publish('channel', {data}); 

Я нашел коснуться так:

engine.publish(message, channels) 

но Не знаете, как его использовать.

ответ

0

[РЕШИТЬ]

faye_server = Faye::RackAdapter.new(:mount => '/faye', :timeout => 45) 
faye_server.get_client.publish('/foo', data) 
1

На стороне сервера, в файле js.erb, вам необходимо передать сообщение на канал. т.е.

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

Для трансляции сообщений/данных с контроллеров. т.е.

def create 
    respond_to do |format| 
    format.json do 
     broadcast "channel" do 
     @message.to_json 
     end 
    end 
    end 
end 

На стороне клиента вы должны включить Javascript Фей в макете или шаблона и придется подписаться на канал. т.е.

<%= javascript_include_tag :defaults, "http://localhost:9292/faye.js" %> 

и контейнер для хранения в макете или шаблоне. т.е.

<ul id="chat"> 
    <%= render @messages %> 
</ul> 

и Подписаться на канал через javascript. т.е.

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

ссылка - http://railscasts.com/episodes/260-messaging-with-faye

+0

Я не хочу, чтобы отобразить данные. Моя цель - только нажать ее клиенту. – mike927

+0

В этом случае вы можете делать сообщение «broadcast» на стороне сервера в любом файле js.erb или в действии контроллера. –

+0

Да, я хотел бы сделать это в приложении rails. Не могли бы вы привести мне такую ​​трансляцию в рельсах? – mike927