Heroku应用程序:WebSocket握手期间出现错误:意外的响应代码:200

3
我按照一个制作多人俄罗斯方块游戏的教程进行了操作,这是仓库链接: https://github.com/Leftier/tetris 在本地环境下运行良好,因此我尝试将其部署到heroku上(https://tetrixtest.herokuapp.com/ --ASD 移动 Q/E 旋转),但是我遇到了以下错误:
WebSocket connection to 'wss://tetrixtest.herokuapp.com/' failed: Error during WebSocket handshake: Unexpected response code: 200

在尝试创建WebSocket时,出现了以下问题(connection-manager.js第14行):

this.conn = new WebSocket(`wss://${window.location.hostname}:${window.location.port}`)

我对webSockets不是很了解,一开始我以为heroku不能处理websockets,但事实并非如此,所以我尝试直接使用链接作为参数而不是从浏览器中读取,但仍然出现相同的问题。

我想知道为什么会发生这种情况,我在谷歌和github上进行了搜索,但只找到了与socket.io相关的问题。

1个回答

0
对我来说,解决方案是通过运行以下命令打开“会话亲和性”:heroku features:enable http-session-affinity 更多信息请参见https://devcenter.heroku.com/articles/session-affinity

会话亲和性(有时称为粘滞会话)是一种平台功能,将来自最终用户的所有HTTP请求与单个应用程序实例(Web dyno)关联起来。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接