我正在开发一个基于Rails的应用程序,主要通过API暴露给各种移动客户端(iOS、Android等)。该应用程序涉及用户通过API调用将数据提交到服务器,但我想包括将这些数据推送到其他客户端的功能。总体概念类似于消息应用程序,我从客户端向服务器提交消息,接收者从服务器获得被推送的消息。
目前我知道的唯一方法是不断轮询服务器,但一定有更好的技术解决方案。你有什么想法呢?
目前我知道的唯一方法是不断轮询服务器,但一定有更好的技术解决方案。你有什么想法呢?
Pusher是一个托管的API,可快速、轻松和安全地向Web和移动应用程序添加可扩展的实时功能。
如果您需要自助托管解决方案,则应查看slanger gem https://github.com/stevegraham/slanger,它是pusher客户端库的服务器实现。当您感到需要托管解决方案时,只需更改URL即可。
Slanger是Pusher协议的开源服务器实现,用Ruby编写。它旨在水平扩展N个节点,并且对于订阅者连接的Slanger节点是不可知的,即订阅同一频道的订阅者不需要连接到同一Slanger节点。多个Slanger节点可以位于负载均衡器后面,无需特殊配置。本质上,它被设计为非常容易扩展。
我更喜欢使用事件机制
而不是其他任何解决方案。虽然相对于Faye来说有些复杂,但你可以使用事件机制编写更为复杂的代码。
你可能想要查看this关于事件机制的Peepcode屏幕录像。