2014-09-05 69 views
7

我试着找到这个问题的答案,我能找到的所有答案都是旧的“不,它不会”或“在未来它会”。我试过socket.io-redis没有效果。在Heroku上,一个dyno会创建工作套接字,除此之外,您将从Socket.io中获得以下错误,这意味着不会出现缩放。Socket.io和Heroku一起工作吗?

{ “编码”:1, “消息”: “会话ID未知”}

在我看来,目前对WebSocket的 “支持” 的Heroku声称有确实是开发商一个残酷的玩笑。

编辑: Heroku支持websockets,但它只是不会与Redis的socket.io集群一起工作。所以我只运行一个专用于套接字的实例。当我想用Heroku使用套接字。

回答

2

披露:我是Heroku的Node.js平台所有者。

tl; dr:我们在私人测试版中提供了多测头socket.io支持。

Heroku完全支持WebSockets,它不需要会话关联,并且与socket.io不一样。

Socket.io是一个更高层次的软实时抽象,它使用WebSocket作为其众多潜在传输之一。 Socket.io does需要会话关联,并且socket.io(在Heroku或其他地方)的任何多节点事件共享实现都需要socket.io-redis(或类似的)。

粘滞会话的大多数实现中断12factor architecture。我们现在已经为socket.io,meteor和sockjs用户运行了一个灵活的,可扩展的flip-a-switch粘性会话测试版。如果您想加入,请发送电子邮件至[email protected];我们将在未来几周内向公众开放。