我使用Ruby on Rails构建一个实时Web应用程序,而Heroku似乎是托管它的最佳选择。
我希望在用户可用时将新数据推送给用户,而不是每隔几秒钟发送一次AJAX请求就将其拉出来。
Heroku似乎建议Pusher做这样的工作,但它有一些限制,带来额外的成本,并使你依赖外部API。
在Heroku上还有其他选项可以使用WebSockets吗?
答案 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)
Heroku现在支持WebSockets:https://devcenter.heroku.com/articles/heroku-labs-websockets
答案 4 :(得分:0)
虽然目前不支持WebSockets,apparently您可以use Socket.io on Heroku,将其配置为进行长轮询。