WebSockets和Heroku:将数据推送给用户

时间:2011-04-17 10:53:45

标签: ruby-on-rails heroku websocket

我使用Ruby on Rails构建一个实时Web应用程序,而Heroku似乎是托管它的最佳选择。

我希望在用户可用时将新数据推送给用户,而不是每隔几秒钟发送一次AJAX请求就将其拉出来。

Heroku似乎建议

Pusher做这样的工作,但它有一些限制,带来额外的成本,并使你依赖外部API。

在Heroku上还有其他选项可以使用WebSockets吗?

5 个答案:

答案 0 :(得分:1)

如果你想做websockets,你需要使用除rails之外的其他服务器。因为你在heroku上没有灵活性。

您可以选择在ec2微实例上托管启用了websockets的节点服务器。然后在你想要推送的rails应用程序中 - 向节点服务器发出请求并将其发送给客户端。

答案 1 :(得分:1)

如果您只需要单向通信,请尝试使用服务器端事件。

答案 2 :(得分:1)

除了Pusher之外,Heroku可以使用两个选项:

1)与上面提到的Eric Fode一样,您可以使用SSE,因为您不需要双向通信。有一个Heroku附加组件可以用于此:https://addons.heroku.com/eshq

2)您可以查看另一个名为Faye的鲜为人知的库。它支持Node.js和Ruby服务器,它基于Bayeux Protocol

答案 3 :(得分:1)

答案 4 :(得分:0)

虽然目前不支持WebSockets,apparently您可以use Socket.io on Heroku,将其配置为进行长轮询。