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)