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

krn*_*krn 11 ruby-on-rails heroku websocket

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

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

Pusher似乎被Heroku建议用于此类工作,但它有一些限制,带来额外的成本,并使您依赖外部API.

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

egg*_*ie5 1

如果你想做 websocket,你需要使用除 Rails 之外的不同服务器。而且由于您使用 Heroku,因此您没有灵活性。

您也可以选择在 ec2 微实例上托管启用 Websockets 的节点服务器。然后在你的 Rails 应用程序中,当你想要推送时,向节点服务器发出请求,它将发送给客户端。

  • 如果您希望能够将内容推送给客户端,则不一定必须通过 Websockets。大多数 websocket 库(例如 socket.io)都能够回退到长轮询策略。Heroku 不支持 WebSocket,但您可以将 socket.io 配置为不使用 Web 套接字,并获得 OP 正在寻找的相同类型的将数据推送到客户端的体验,而无需运行单独的服务器。 (2认同)