Socky Alternative

时间:2011-11-08 23:17:54

标签: ruby-on-rails websocket

我正在为ROR 3寻找可靠的websocket服务器。现在我们正在使用socky。这是不可靠的。我们喜欢它,因为它有闪回后退,因此它假设可以在较旧的浏览器上工作......但同样 - 它是不可靠的。 你知道ROR的任何好的websocket服务器有回退(即支持所有浏览器)

1 个答案:

答案 0 :(得分:8)

替代方案是:

  • socket.io(NodeJS的原始Websocket)
  • juggernaut(NodeJS / Rails的完整Bayeux协议)
  • faye(完整的NodeJS / Rails Bayeux协议)和Ruby-Server

提示:不要使用ruby作为websocket服务器,请使用NodeJS - 我们每小时处理数千条消息而没有任何问题。

我们使用最简单的设置使其工作 - 并且它有效;)

我们的设置:

  • Rails 3.0.9
  • Redis的
  • 的NodeJS
  • Socket.IO

我们如何设置:

Rails --PUB--> REDIS --SUB--> NodeJS --WEBSOCKET (SOCKET.IO)--> Client

文章Redis PubSub - How does it work?

另一个提示:尽可能避免认证

以下是我们的案例:

我们有一个类似于带有虚拟文件系统的项目管理工具。假设您正在查看文件夹,而团队中的其他人则上传新文件。现在我们必须通知您,您的观点已经过时 - 我们发送的消息如下:

folder_id | last_change_timestamp

到频道folders:#{folder_id}

现在,客户端(收听folders:#{folder_id}收到该消息并看到“我的视图已过期”,并显示消息“您的视图已过时,请点击&gt;此处&lt;刷新”。< / p>

好消息是我们不需要任何身份验证,因为:

  1. 如果您无法访问该项目,则必须猜测folder_id才能订阅该频道
  2. 即使您设法订阅频道,您获得的唯一信息就是某些内容已发生变化 - 不仅仅是更少;)