socket.io:为啥这个广播语句不起作用?

Posted

技术标签:

【中文标题】socket.io:为啥这个广播语句不起作用?【英文标题】:socket.io: why doesn't this broadcast statement work?socket.io:为什么这个广播语句不起作用? 【发布时间】:2016-12-19 08:53:39 【问题描述】:

我正在尝试使用广播语句向特定用户发送消息。但是,当我开始使用以下语句自发送消息时,它不起作用。客户端无法接收消息。那么这句话有什么问题呢?

io.on('connection', function(socket) 
  socket.on('message', function(msg) 
    socket.broadcast.to(socket.id).emit('message', msg);
  );
);
(这段代码的目的:客户端发送一条名为'message'的消息,服务器接收消息并发送回同一个客户端)

【问题讨论】:

如果您要发送回单个套接字连接,为什么不直接使用socket.send 那么如何使用 socket.send 发送给具有特定 ID 的客户端? 【参考方案1】:

socket.broadcast.to 广播到给定房间中的所有套接字,除了调用它的套接字,而io.sockets.in 广播到给定房间中的所有套接字。 (引自 Daniel Baulig 对另一个问题的回答:)Socket.io rooms difference between broadcast.to and sockets.in

【讨论】:

以上是关于socket.io:为啥这个广播语句不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Laravel Echo、laravel-echo-server 和 socket.io 广播将不起作用

laravel 事件应该广播不起作用

为啥这个合并语句不起作用?

为啥这个 if 语句在这种情况下不起作用? [关闭]

为啥这个 VBA if 语句不起作用?

为啥这个准备语句在 MYSQLI 中不起作用?