如何在向套接字发送消息之前检查房间是否存在?


broadcastToSpecificUser(message: any): void {
if(message.username){
this.io.sockets.in(message.username).emit("eventArrived", message);
}else{
this.io.sockets.emit("eventArrived", message);
}
}

我正在尝试仅向特定房间的套接字发送消息。"message"是一个事件对象,其中有一个名为用户名的属性,我用它来检查房间是否存在。我应该如何修改上面的代码?

因为rooms是一个Mapio.sockets.adapter.rooms["room name"]返回未定义。相反,我使用

io.sockets.adapter.rooms.get("room name")

试试这个:

if(io.sockets.adapter.rooms["room name"])
{
//if room exist
}

一个选项是使用三元运算符来定义哪个对象需要发出消息,如下所示:

broadcastToSpecificUser(message: any): void {
const emitter = message.username ? this.sockets.in(message.username) : this.io.sockets;
emitter.emit("eventArrived", message);
}

最新更新