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.broadcast.emit()
와 유사하게 작동 io.sockets.emit
하지만 연결된 모든 소켓으로 방출하는 대신 호출되는 소켓을 제외한 모든 연결된 소켓으로 방출합니다. 따라서이 경우에서 참조하는 소켓 socket
은 이벤트를 수신하지 않습니다.
답변
시나리오 : 1 : -io.sockets.emit
세부 다이어그램 사용 : -io.sockets.emit
여기서 모든 소켓은 Initiator를 포함한 메시지를받습니다 .
// 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"});
결론 :-이제 어느 것이 더 좋을지 우리의 비즈니스 요구 사항에 전적으로 달려 있습니다.