什么是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
});
io.sockets.emit
将发送给所有的客户
socket.broadcast.emit
将消息发送给所有其他客户端,除了新创建的连接
这Socket.IO维基帖子将帮助大家读了这个问题:
socket.broadcast.emit()
行为类似于io.sockets.emit
但是代替发射到所有连接的插座,它将会发射到除了该一个它被称为上的所有连接的插座。 因此,在这种情况下,通过引用的插座socket
将不会收到该事件。
方案: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"});
结论: - 现在它将会完全取决于我们的业务要求,即哪一个会是可取的。