Ode*_*ded 5 ruby ruby-on-rails long-polling eventmachine
我正在Rails 3.1中编写一个简单的聊天室应用程序 - 用于学习目的.对于初学者我有所有需要的模型(消息,用户,房间等),事情很好.客户端每分钟轮询服务器(例如)并获得新消息(如果有).
我想将简单轮询更改为长轮询,并且无法确定是否可以在同一个应用程序中完成此操作,或者我是否必须为长轮询创建其他推送服务器.
我阅读了很多关于EventMachine的内容,并将我的rails应用程序更改为用户,因为我想将EventMachine用于事件驱动的机制.我认为EventMachine频道会派上用场.客户端将连接并等待聊天室中的消息,并且仅当一个人被发送到房间时它才会收到消息.
我无法弄清楚的是如何在所有客户端连接之间共享EventMachine :: Channel实例.这种方法是否可行,或者我是否采取了错误的方式?
如果可能的话,我想要一个可以作为Heroku上托管的单个rails应用程序运行的解决方案.
扩展我在评论中提到的内容,请查看这篇博客文章,其中解释了如何使用 EM 创建基于文本的聊天应用程序,并使用 AMQP 将消息广播给其他用户。
我认为你可以做同样的事情或者使用一些内存队列来共享消息,这绝对应该在heroku上工作,因为你不依赖于外部服务,例如RabbitMQ。这里有关于不同队列框架的很好的讨论:ActiveMQ 或 RabbitMQ 或 ZeroMQ 或
| 归档时间: |
|
| 查看次数: |
2572 次 |
| 最近记录: |