我正在寻找一个可靠的websocket服务器ROR 3。现在我们用的是soky。它不可靠。我们喜欢它是因为它有flash回退,所以它应该可以在旧的浏览器上工作……但同样,这是不可靠的。你知道有什么好的websocket服务器支持ROR回退吗?
备选方案有:
- 插座。io (NodeJS的原始Websocket)
- juggernaut (Complete Bayeux Protocol for NodeJS/Rails)
- faye (Complete Bayeux Protocol for NodeJS/Rails) with Ruby-Server
提示:不要使用ruby作为websocket服务器,使用NodeJS -我们每小时处理数千条消息没有任何问题。
我们使用了最简单的设置来使它工作——而且它工作了;)
我们设置:- Rails 3.0.9
- 复述,
- NodeJS
- 插座。IO
如何设置:
Rails --PUB--> REDIS --SUB--> NodeJS --WEBSOCKET (SOCKET.IO)--> Client
文章Redis PubSub -它是如何工作的?
另一个提示:尽可能避免身份验证
下面是我们的例子:
我们有一个带有虚拟文件系统的项目管理工具。假设您正在查看一个文件夹,而团队中的其他人正在上传一个新文件。现在我们必须通知您,您的视图已过期-我们发送如下消息:
folder_id | last_change_timestamp
到通道folders:#{folder_id}
现在客户端(侦听folders:#{folder_id}
)接收到该消息,看到"哎呀,我的视图过时了",并显示一条消息"您的视图过时了,请点击>这里<刷新"。>
好处是我们不需要任何身份验证,因为:
- 如果你没有访问项目的权限,你必须猜测folder_id来订阅频道
- 即使你设法订阅了频道,你得到的唯一信息是有些事情发生了变化——不是更多,也不是更少;)