使用Socket.IO时浏览器中console.log无法工作的问题求助
问题分析与解决
你遇到的问题核心是Socket.IO客户端并没有connection这个事件——这个事件是服务端用来监听新客户端连接的专属事件,客户端要监听连接成功的状态,得用connect事件。
具体原因拆解
- 服务端的
io.on('connection', ...)是用来接收新客户端接入的回调逻辑,这是服务端侧的专属事件。 - 客户端这边,当成功和服务端建立Socket连接时,触发的是
connect事件而非connection。你之前把connection事件绑定在客户端的socket实例上,这个事件根本不会被触发,所以回调里的console.log自然不会执行。
修正后的客户端代码
<script type="text/javascript"> let socket = io.connect('http://localhost:5000'); // 替换成客户端专属的connect事件 socket.on('connect', function () { console.log('Connected to server'); }); </script>
额外调试建议
你还可以顺便监听连接断开的disconnect事件,方便排查连接状态变化:
<script type="text/javascript"> let socket = io.connect('http://localhost:5000'); socket.on('connect', function () { console.log('Connected to server'); }); socket.on('disconnect', function () { console.log('Disconnected from server'); }); </script>
修改后,客户端连接成功时就能正常打印日志,和服务端输出的client connected形成对应了。
内容的提问来源于stack exchange,提问作者wawa
相关产品推荐
相关产品推荐

