nestjs 集成 socket.io,客户端连不上问题
笔者遇到的是版本不一致的问题
- 截止发稿日期, nest socket 使用的包、及其版本 @nestjs/platform-socket.io (7.6.5)
此包内部依赖于 { “socket.io”: “2.3.0” } - 个人在客户端使用的是最新版本包 socket.io-client(3.0.5)
- socket.io 官方明确指出,2.0 <—> 3.0 的(客户端/服务端)不能互联,参加文档:
https://socket.io/docs/v3/migrating-from-2-x-to-3-0/
所以 ,首先要检查服务端的版本和客户端的版本是不是都是 2.x 或者 3.x , 如果不是,修改包保持一致即可。
同时,如果遇到其他问题,可以试试这两个调试方法
- 开启调试模式,DEBUG=* node socket.client.js
- 查看连接出错原因,以下代码
socket.on('connect_error', (err) => {
console.error(err);
});

本文档介绍了在NestJS中集成Socket.IO时遇到的客户端连接问题,由于服务端使用的socket.io为2.3.0,而客户端使用了3.0.5,导致无法互通。解决方案是确保服务端和客户端的socket.io版本一致,均处于2.x或3.x系列。此外,还提供了开启调试模式和查看错误原因的调试方法。

1057

被折叠的 条评论
为什么被折叠?



