如何通过Rails实现基于websocket的推送服务?

时间:2013-07-26 15:11:16

标签: ruby-on-rails websocket ipc faye em-websocket

我正在构建像WhatsApp这样的消息传递应用程序。我的目标是通过Rails只暴露REST API,并通过websockets将“推送通知”暴露给连接的客户端。因此,客户端仅使用REST API与服务器通信。只有服务器通过websocket发送数据。客户只能从中接收数据。

目前我已经构建了一个eventmachine服务器,用于监听websocket连接和Unix域套接字连接。当客户端在REST API上执行请求时,Rails会连接到Unix域套接字,以告知事件处理器需要通过websocket通知哪些连接的客户端。

我关心的是它在生产中的表现(我的服务器运行Apache Passenger)。所以我正在寻找一些解决我问题的项目。我看了看Faye,但我无法理解如何强制它从外部进程(在执行请求时可能是rails)向连接的客户端发送通知。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您是否看过同步宝石我正在做类似的事情,这就是我使用的

https://github.com/chrismccord/sync

他们有一个非常好的集成视频和一个示例https://github.com/chrismccord/sync_example

这完全支持Faye和Pusher。

我使用Faye代替dev和Pusher进行制作