본문 바로가기

socket.io2

[NestJS] nestJS 소켓통신 (part2. 채널마다 fetchSockets를 통한 메세지 보내주기) 0. 배경 1. 해결방법 0. 배경 서로 구분되는 채널에다가 메세지를 보내줄 수 있도록 구현이 필요했었다. 처음에는 socket.io에서 지원하는 room 을 통해 채널id 내부에있는 소켓들에게 메세지를 보내주는 식으로 고안했는데.. 하나의 소켓이 다른 채널(룸) 으로 참여할 때 기존의 룸에서 메세지를 보내도 다른 채널에서 메세지가 보이는(!) 문제가 발생했다. 그래서 아래와 같이 다른 채널에서 메세지를 보낼 때 구분하기 위해 channelId 와 메세지 내용을 객체로 던져주는 방식을 생각했다. const eventMessageEmitDto = { nickname: user.nickname, message, channelId, }; 이러한 과정중에 room으로 들어가기 위해 소켓을 가지고 와야하는 과정이.. 2024. 2. 8.
[NestJS] nestJS 소켓통신 (part1. 기본설정) 0. 웹소켓의 특징, 한계 1. Socket.io? 2. Lifecycle hooks 3. Postman으로 연결 테스트 웹소켓의 특징 양방향 송수신 가능(Full duplex) 데이터 송수신을 동시에 처리할 수 있는 통신방법 클라이언트와 서버가 서로 원할 때 데이터를 주고 받을 수 있음 ws 프로토콜을 사용하면 웹소켓 포트에 접속해 있는 모든 클라이언트에게 이벤트 방식으로 응답함 통상적인 http 통신은 단방향 통신임 실시간 네트워킹 가능(Real-time Networking) 채팅, 주식, 비디오 등 웹 환경에서 연속된 데이터를 빠르게 노출함 여러 단말기에서 빠르게 데이터 교환할 수 있음 웹소켓의 한계 HTML5에 최적화 된 프로토콜이기 때문에 HTML5 이전의 기술로 구현된 서비스에서는 동작하지 않.. 2024. 2. 8.
반응형