Ruby on rails Rails faye实时通知系统
我试图建立一个简单的基于faye实时的通知系统,这样我就可以在特定的动作上执行特定的javascript。这个想法相对简单,尽管我在实现它时遇到了问题,但在阅读了faye的文档后,我不确定wich road是否会采取这种做法 当前的想法是Ruby on rails Rails faye实时通知系统,ruby-on-rails,notifications,faye,Ruby On Rails,Notifications,Faye,我试图建立一个简单的基于faye实时的通知系统,这样我就可以在特定的动作上执行特定的javascript。这个想法相对简单,尽管我在实现它时遇到了问题,但在阅读了faye的文档后,我不确定wich road是否会采取这种做法 当前的想法是 每个登录用户都有一个唯一的faye频道,因此您只能将操作(弹出窗口、设置文本)推送到某个用户 我的应用程序布局中的一个div,我可以向其中写入文本 我的应用程序中的一个div保存弹出窗口的布局 现在我已经看过了关于faye的railscast教程,但是ry
- 每个登录用户都有一个唯一的faye频道,因此您只能将操作(弹出窗口、设置文本)推送到某个用户
- 我的应用程序布局中的一个div,我可以向其中写入文本
- 我的应用程序中的一个div保存弹出窗口的布局
- 在特定Faye通道上执行javascript函数
有点迷失在这个问题上,任何人都可以为我指出正确的方向,或者可能已经构建了这样的功能?提前谢谢 在服务器端,您只需执行以下操作(这需要eventmachine): 或通过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);
});
只需更换
警报(1)代码>使用任何你想执行的JS。为什么你不想使用控制器?我想有一个灵活的解决方案,我可以从任何控制器调用,我上面的文字对此不清楚,抱歉。也许应用程序助手是最好的选择,但仍然不是舒尔如何开始上述实施:(Thx我在文档中发现Faye的数量少了一点,与Juggernaut相比,我因此搬到了Juggernaut(和工作示例应用程序)我仍然非常需要Rails Instant Messenger 1-1,也许你知道一个示例应用,或者你自己实现了它?使用Faye很容易实现。你可以让每个用户订阅他们自己的频道,并创建一个服务器端扩展来处理身份验证。我选择使用Faye而不是Juggernaut的原因是因为JG不允许客户端推送数据。你必须对服务器进行AJAX调用,然后服务器推送。我不能使用AJAX,因为我正在构建一个可嵌入的小部件,AJAX不能跨域工作,所以我使用了Faye。非常有趣的感谢,似乎我必须再次在Faye中挖掘更多。纯粹出于兴趣,你在用Faye构建什么?Thx
var client = new Faye.Client('http://localhost:9292/faye');
client.subscribe('/notifications/1', function(data) {
eval(data);
});