Rails - 王菲推送数据
Rails - Faye pushing data
我不知道如何从 rails 服务器发布一些数据,我想在 js 中做类似的事情
var publication = client.publish('channel', {data});
我发现了类似的东西:
engine.publish(message, channels)
但是不知道怎么用
在服务器端,在 js.erb 文件中,您必须向频道广播消息。即
<% broadcast "/messages/new" do %>
$("#chat").append("<%= escape_javascript render(@message) %>");
<% end %>
从控制器广播 message/data。即
def create
respond_to do |format|
format.json do
broadcast "channel" do
@message.to_json
end
end
end
end
在客户端,您必须在布局或模板中包含 faye javascript 并且必须订阅该频道。即
<%= javascript_include_tag :defaults, "http://localhost:9292/faye.js" %>
和布局或模板中的 dom 容器。即
<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);
});
});
[已解决]
faye_server = Faye::RackAdapter.new(:mount => '/faye', :timeout => 45)
faye_server.get_client.publish('/foo', data )
我不知道如何从 rails 服务器发布一些数据,我想在 js 中做类似的事情
var publication = client.publish('channel', {data});
我发现了类似的东西:
engine.publish(message, channels)
但是不知道怎么用
在服务器端,在 js.erb 文件中,您必须向频道广播消息。即
<% broadcast "/messages/new" do %>
$("#chat").append("<%= escape_javascript render(@message) %>");
<% end %>
从控制器广播 message/data。即
def create
respond_to do |format|
format.json do
broadcast "channel" do
@message.to_json
end
end
end
end
在客户端,您必须在布局或模板中包含 faye javascript 并且必须订阅该频道。即
<%= javascript_include_tag :defaults, "http://localhost:9292/faye.js" %>
和布局或模板中的 dom 容器。即
<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);
});
});
[已解决]
faye_server = Faye::RackAdapter.new(:mount => '/faye', :timeout => 45)
faye_server.get_client.publish('/foo', data )