broadcastToSpecificUser(message: any): void {
if(message.username){
this.io.sockets.in(message.username).emit("eventArrived", message);
}else{
this.io.sockets.emit("eventArrived", message);
}
}
我正在尝试仅向特定房间的套接字发送消息。 “message”是一个事件对象,其中有一个名为username的属性,我用它来检查房间是否存在。我该如何修改上面的代码?
答案 0 :(得分:1)
尝试一下:
northeast
答案 1 :(得分:0)
一个选项是使用三元运算符来定义发送消息所需的对象,如下所示:
broadcastToSpecificUser(message: any): void {
const emitter = message.username ? this.sockets.in(message.username) : this.io.sockets;
emitter.emit("eventArrived", message);
}
答案 2 :(得分:0)
由于 rooms
是 Map
,因此 io.sockets.adapter.rooms["room name"]
返回未定义。相反,我使用
io.sockets.adapter.rooms.get("room name")