2011-11-08 120 views
0

我正在寻找ROR 3的可靠websocket服务器。现在我们使用的是socky。这是不可靠的。我们喜欢它,因为它具有闪回回退功能,因此它可以在较旧的浏览器上工作......但是又一次 - 它不可靠。 你知道ROR与后备任何良好的WebSocket服务器(即支持所有浏览器)Socky Alternative

+0

我们在生产和测试主宰中使用faye/socket.io。 – sled

+0

@sled,它的表现如何?很难安装?它是否有后备? – user194076

+0

@sled让你的评论一个答案。如果您考虑托管服务,那么您可能会发现[Pusher](http://pusher.com),我为谁工作的一个有趣的解决方案。 – leggetter

回答

8

替代品:

  • socket.io(生的WebSocket为的NodeJS)
  • juggernaut(完成贝叶协议的NodeJS/Rails的)
  • faye(完全贝叶协议的NodeJS/Rails)的具有红宝石服务器

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

我们用最简单的设置可以使工作 - 和它的作品;)

我们的设置:

  • 的Rails 3.0.9
  • Redis的
  • 的NodeJS
  • 插座.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}接收的消息以及看到“哎呦我的看法是过时的”,并显示一条消息“你的观点已经过时,请点击>这里<刷新”

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

  1. 如果你有项目没有进入你将不得不猜测folder_id订阅频道
  2. 即使你设法订阅频道,你得到的唯一信息是事情有了变化 - 没有更多不少于;)