Socket.io 에서 emit 과 broadcast.emit 의 차이

유니티에서 Socket.io 를 활용하여 node.js 기반의 간단한 소켓 통신 서버를 공부중이다.

웹쪽에는 내공이 워낙 없는 데다가.. socket.io 자체가 완전 처음이라 이것저것 삽질을 하는 중인데, 몇가지 깨달은 바가 있어서 틈틈히 정리를 하려한다.

socket.io 는 크게 서버 사이드와 클라이언트 사이드를 나눠서 개발을 하게 되는데.

서버 사이드에서 클라이언트들에게 데이터를 전달해주기 위해서는 “emit” 이라는 명령어를 사용하게된다.
다음과 같은 식으로 사용된다.

socket.emit("함수이름", "메세지");

그런데 클라이언트 단에서 정보를 보내고 이를 모든 클라이언트에게 정보를 보낸다면? 해당 정보를 서버로 보낸 클라이언트는 이미 알고 있는 정보를 보내는 것 이기때문에 불필요한 작업 혹은 중복되는 작업이 발생할 수 있다.

따라서, socket.io 에서는 정보를 보낸이를 제외하고 데이터를 모두에게 보내는 명령어가 존재한다. 이게 바로 broadcast 이다.
사용법은 다음과 같은 식으로 사용된다.

socket.broadcast.emit("함수이름", "메세지");

이렇게 사용하게되면 정보의 출처가 되는 클라이언트는 제외하고 다른 모든 접속한 클라이언트들에게 데이터 전송이 가능하게 된다.

잘 활용하면 좋은 것같다.

쓰면 쓸수록 socket.io 는 참 잘 만든 것 같다.

Leave a Comment