【发布时间】:2014-10-24 04:09:19
【问题描述】:
我在 heroku 上有一个应用程序,它使用 socket.io 进行服务器-客户端通信。一切正常。但是,一旦我将我的应用程序扩展到超过 1 个 dyno,我就会收到几个 http 请求错误:
can't establish a connection to the server at wss://***/socket.io/?EIO=2&transport=websocket&sid=Hky6IHdckNADdU_tAACm. socket.io.js:4520
The connection to wss://***/socket.io/?EIO=2&transport=websocket&sid=Hky6IHdckNADdU_tAACm was interrupted while the page was loading. socket.io.js:4520
can't establish a connection to the server at wss://***/socket.io/?EIO=2&transport=websocket&sid=kWymv6ItJHBcUybZAAAA. socket.io.js:4520
The connection to wss://***/socket.io/?EIO=2&transport=websocket&sid=kWymv6ItJHBcUybZAAAA was interrupted while the page was loading. socket.io.js:4520
还有一大堆
HTTP status 400
{ code: 1, message: "Session ID unknown" }
我的 socket.io 正在使用 redis 适配器,因此应该正确共享状态。我通过连接到 redis 并发出以下命令来验证这一点:
PSUBSCRIBE socket.io#*
由于我可以看到数据传回并在此通道上强制执行,因此我假设我的 socket.io redis 适配器工作正常。
有人知道如何让 socket.io 在超过 1 个 dyno 的 heroku 上工作吗?
【问题讨论】:
标签: node.js heroku socket.io server-farm