Socket.io 移动到不同的域名后抛出 connect_error “服务器错误”
Posted
技术标签:
【中文标题】Socket.io 移动到不同的域名后抛出 connect_error “服务器错误”【英文标题】:Socket.io throw connect_error "server error" after moving to a different domain name 【发布时间】:2021-10-22 23:28:03 【问题描述】:这是我上一个问题的延伸:
socket.io always has connection false
目前,我有两台服务器部署在两个不同的域名中。第一个服务器与 socket.io 完美配合,所以我将服务器重新部署到新域名,只需从 GitHub 拉出相同的分支,安装所有内容并运行它。然后我发现我所有的socket.io连接都失败了,症状和上次完全一样:连接总是'false',断开总是'true'。
这次我很确定它与 cors 无关,因为我尝试了io.origins((origin, cb) => if (whitelist.includes(origin)) cb(null, true) else cb('failed', false) )
并且它显示来源是允许的。
我也尝试了cors: origin: '*'
,但也没有用。
奇怪的是,尽管他们使用相同的代码,但连接到第一个域名却可以正常工作。但是第二个有问题。
更新:
我用它来跟踪错误消息。
this.socket.on('connect_error', function(err)
console.log(`connect_error due to $err.message`);
);
这就是返回的内容:
connect_error due to server error
与此同时,在服务器端,我只能看到新连接正在创建并由于 ping 超时而断开连接。
在哪里可以找到更多信息来帮助我进行调试?
【问题讨论】:
【参考方案1】:原来我在部署到新域名后忘记运行npm i
。 socket.io 的版本未更新并导致该问题。
看到这个的每个人,只要确保你在放弃调试之前已经更新了包。
【讨论】:
谢谢你!升级 socket.io 服务器解决了我的问题以上是关于Socket.io 移动到不同的域名后抛出 connect_error “服务器错误”的主要内容,如果未能解决你的问题,请参考以下文章