我正在为ROR 3寻找可靠的websocket服务器.现在我们正在使用socky.这是不可靠的.我们喜欢它,因为它有闪回后退,因此它假设可以在较旧的浏览器上工作......但同样 - 它是不可靠的.你知道任何一个好的websocket服务器ROR与后备(即支持所有浏览器)
替代方案是:
socket.io(NodeJS的原始Websocket)
juggernaut(完整的Bayeux NodeJS/Rails协议)
使用Ruby-Server的faye(完整的NodeJS/Rails Bayeux协议)
提示:不要使用ruby作为websocket服务器,去使用NodeJS - 我们每小时处理数千条消息而没有任何问题.
我们使用最简单的设置使其工作 - 并且它有效;)
我们的设置:
Rails 3.0.9
Redis的
的NodeJS
Socket.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以订阅该频道
即使您设法订阅频道,您获得的唯一信息就是某些内容已发生变化 - 不仅仅是更少;)