0

我正在考虑在 Rails 中制作一个国际象棋应用程序,其中需要将移动从服务器异步推送到客户端浏览器(最好使用 websockets)。

但是,从我所做的少量研究来看,Heroku 似乎不支持 websockets。但是使用配置为使用长轮询而不是 websockets 的 socket.io 有另一种选择。

长轮询是否不足以满足 5 分钟闪电战之类的国际象棋游戏的延迟要求?

4

2 回答 2

1

Heroku Cedar 堆栈支持 HTTP 流和长轮询: https ://devcenter.heroku.com/articles/request-timeout#longpolling_and_streaming_responses

它不支持 WebSocket。但是你可以使用像Faye这样的框架并使用 XHR 作为传输机制。似乎有一个项目。请参阅: 是否可以在 Heroku 上托管 FAYE?

如果您想在游戏客户端中使用 WebSocket 并在 Heroku 上使用后端,那么我现在知道的唯一解决方案是使用 Pusher(我为插件工作): https ://addons.heroku.com/pusher

于 2013-02-17T10:34:06.380 回答
0

一个更接近 Websockets 的替代方案是Server Sent Events。从服务器到客户端是单向的(您可以继续对客户端->服务器方向发出标准请求)。

Heroku 似乎确实支持服务器发送事件,大多数支持 Websockets 的浏览器也是如此(IE10 是不支持的例外)。

于 2013-02-27T01:39:35.627 回答