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

socket.io v2升v3后io.sockets.in(room).emit触发EVENT属性未定义错误求助

Socket.io v3 版本房间广播API适配方案

错误原因

Socket.io v3 对广播相关API做了不兼容升级,v2中io.sockets.in(room).emit()的链式调用逻辑已被废弃,底层没有对应属性支撑才会触发读取EVENT属性失败的报错。

适配后的正确写法

原v2版本代码:

io.sockets.in(room).emit(bag.message.eventType, message)

在v3版本中直接替换为如下代码即可实现完全相同的功能:

io.to(room).emit(bag.message.eventType, message)

也可以使用等价写法:

io.in(room).emit(bag.message.eventType, message)

补充场景说明

如果你的业务场景需要排除当前触发事件的socket连接,仅给房间内其他连接推送消息,可以直接调用对应socket实例的to方法:

socket.to(room).emit(bag.message.eventType, message)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 09:57:03