You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Socket.io客户端.on无响应但服务器已接收emit事件问题

问题原因及解决方案

核心问题是:你的服务端仅接收了客户端发送的test事件,但没有向客户端回传该事件,客户端的sio.on('test')监听的是服务端主动推送的test事件,自然不会触发。

具体修改方案

在服务端的test事件处理函数中,添加向客户端发送事件的逻辑,有两种常用方式:

1. 仅回发给当前触发事件的客户端

修改服务端代码中socket.on('test')的部分:

socket.on('test', function(data){
    console.log('received');
    console.log(data);
    // 回发给当前连接的客户端
    socket.emit('test', data);
});

2. 广播给所有连接的客户端

如果需要让所有在线客户端都收到这个事件,改用io.emit:

socket.on('test', function(data){
    console.log('received');
    console.log(data);
    // 广播给所有连接的客户端
    io.emit('test', data);
});

修改后效果

修改完成后,客户端在3秒后发送test事件,服务端接收后回传,客户端的sio.on('test')就会触发,控制台会输出:

test messaged initialized
client received
{ test: 'test' }

内容的提问来源于stack exchange,提问作者helmetwearer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 03:12:16