我的应用程序在 localhost 中使用 websockets 和 xhr-polling 与 socket.io 一起工作正常,并且它在 heroku 中与 xhr-polling 一起工作,但由于 heroku 提供了对 websocket 的支持,我无法使其使用 websockets 工作。
我的 Chrome 控制台显示此消息:
WebSocket connection to 'ws://<myherokuapp>.herokuapp.com/socket.io/1/websocket/HBWE2BFvHahlSWk5ppHP' failed: Unexpected response code: 503
我已经启用了 websocket 实验室。
有没有使用socket.io的websocket的工作示例?
我遇到了同样的问题,只是通过在heroku上重新激活我的应用程序上的websockets来修复它。 由于某种原因,它只是随机切换到 XHR 轮询。
我使用heroku网站(@ https://devcenter.heroku.com/articles/heroku-labs-websockets)中的命令来重新激活它:
heroku labs:enable websockets -a myapp
然后,我通过推送到 Heroku 并重建服务器(或使用:
heroku restart
)来重新启动服务器。
我还有一个非常基本的 socket.io 聊天应用程序(由 Smitha Milli 编写)的工作副本,运行在:http://calm-gorge-8474.herokuapp.com/,您可以测试它。
希望这有帮助!
你必须使用 WebSocket 连接到“wss://.herokuapp.com/socket.io/1/websocket/HBWE2BFvHahlSWk5ppHP”
wss:// 不是 ws:// 因为 Heroku 运行在 https 协议上