[node.js] io.sockets.emit과 broadcast의 차이점은 무엇입니까?

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 Wiki 게시물은이 질문을 읽는 모든 사람에게 도움이 될 것입니다.


답변

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"});

결론 :-이제 어느 것이 더 좋을지 우리의 비즈니스 요구 사항에 전적으로 달려 있습니다.


답변