什么是io.sockets.emit和广播之间的区别?什么是io.sockets.emit和广播之间

2019-05-13 16:09发布

什么是io.sockets.emit和socket.broadcast.emit之间的区别? 难道只有广播发射到每个人,但发送它的插座?

好像他们可以互换使用:

io.sockets.on('connection', function (socket) {
  //these should do the same thing  
  io.sockets.emit('this', { receivers: 'everyone'});

  socket.broadcast.emit('this', { receivers: 'everyone but socket'}); //emits to everyone but socket
  socket.emit('this', { receivers: 'socket'}); //emits to socket
});

Answer 1:

io.sockets.emit将发送给所有的客户

socket.broadcast.emit将消息发送给所有其他客户端,除了新创建的连接

这Socket.IO维基帖子将帮助大家读了这个问题:



Answer 2:

socket.broadcast.emit()行为类似于io.sockets.emit但是代替发射到所有连接的插座,它将会发射到除了该一个它被称为上的所有连接的插座。 因此,在这种情况下,通过引用的插座socket将不会收到该事件。



Answer 3:

方案:1: -通过使用io.sockets.emit的详细图解:-io.sockets.emit

这里的每一个插座获取消息包括发起者

  // BY IO>SOCKETS>EMIT
   io.sockets.emit('MyChannelBroadcast',
               {
                 owner:"Anshu Ashish",
                 clientCount:clients,
                 message:"Welcome All"
               }
    );

情景:2: -通过使用socket.broadcast.emit的详细图解:-socket.broadcast.emit

这里的每一个套接字越来越消息除了一个即发起人

    // BY SOCKET>BROADCAST>EMIT
   socket.broadcast.emit('BroadCastExceptMe',{data:"HAVE A NICE DAY"});

结论: - 现在它将会完全取决于我们的业务要求,即哪一个会是可取的。



文章来源: What's the difference between io.sockets.emit and broadcast?