我正在尝试构建一个简单的基于实时的通知系统,这样我就可以在某些动作上执行某个javascript。这个想法相对简单,虽然我在实现它时遇到了问题,但是在阅读完文档之后不确定这个问题。菲。
目前的想法是
现在我已经看过关于faye的railscast教程,但是ryan是从控制器/动作方法创建的。我不想在db中插入东西,只需从任何地方调用JS函数(构建一个应用程序助手我认为是个好主意),我只想做一些像“执行javascript'set_text'”这样的事情并执行javascript'show_popup'
使用Faye构建此类功能的最佳方式是什么,基本上我只需要
完成弹出和短信。 有点丢失这个人可以指出我正确的方向或可能已经建立了这样的功能? thx in advanche!
答案 0 :(得分:3)
在服务器端,你可以这样做(这需要eventmachine):
client = Faye::Client.new('http://localhost:9292/faye')
client.publish('/notifications/1', 'alert(1);')
或通过HTTP:
message = {:channel => '/notifications/1', :data => 'alert(1);'}
uri = URI.parse("http://localhost:9292/faye")
Net::HTTP.post_form(uri, :message => message.to_json)
然后在客户端,您可以对数据执行任何操作。
var client = new Faye.Client('http://localhost:9292/faye');
client.subscribe('/notifications/1', function(data) {
eval(data);
});
只需将alert(1);
替换为您要执行的任何JS。