Qual é a diferença entre io.sockets.emit e socket.broadcast.emit? É apenas aquele broadcast emite para todos, MAS o socket que o envia?
Parece que eles podem ser usados indistintamente:
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
});
socket.broadcast.emit
enquanto a API nunca é documentada em lugar nenhum.socket.broadcast.emit
e eles a receberão, mas não você.socket.broadcast.emit()
se comporta de maneira semelhanteio.sockets.emit
, mas em vez de emitir para todos os soquetes conectados, ele emitirá para todos os soquetes conectados, exceto aquele que está sendo chamado. Portanto, neste caso, o soquete referenciado porsocket
não receberá o evento.fonte
Cenário: 1: - Com o uso do diagrama detalhado io.sockets.emit: -io.sockets.emit
Cenário: 2: - Pelo uso de socket.broadcast.emit Diagrama detalhado: -socket.broadcast.emit
Conclusão: - Agora dependerá totalmente de nossa exigência comercial qual será o preferível.
fonte