Socket.io连接成功但收不到服务端emit的消息怎么办?

UE丶书錦 阅读 4

我用Socket.io做了一个简单的聊天功能,前端连接看起来没问题,控制台也没报错,socket.connected 是true。但我在服务端用 io.emit('message', data) 发消息,前端的 socket.on('message', ...) 完全没反应。

试过改成 socket.emit 也不行,事件名确认是一致的。服务端日志显示消息确实发出去了。是不是中间有什么配置漏了?比如CORS或者命名空间的问题?

// 前端监听
socket.on('message', (msg) => {
  console.log('收到消息:', msg);
});

// 服务端发送
io.emit('message', { text: 'Hello!' });
我来解答 赞 1 收藏
二维码
手机扫码查看
1 条解答
Zz记彤
Zz记彤 Lv1
最简单的办法是检查一下前端是否正确连接到了正确的命名空间。如果用了命名空间,确保服务端和客户端的命名空间一致。比如,如果服务端用了 io.of('/chat'),那么前端也得 io('/chat')
点赞
2026-03-20 17:01