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

时间:2018-06-07 08:19:15

标签: typescript socket.io

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的属性,我用它来检查房间是否存在。我该如何修改上面的代码?

3 个答案:

答案 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)

由于 roomsMap,因此 io.sockets.adapter.rooms["room name"] 返回未定义。相反,我使用

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