실시간/WebSocket을 이용한 채팅

5. 웹소켓으로 다른 브라우저 끼리 메시지 주고받기

sdafdq 2023. 10. 25. 16:44

쉽다. 다른 부분 제쳐두고,

const sockets = [];

wss.on("connection", (socket)=>{
  sockets.push(socket);
  console.log("Connected to Client");
  socket.send("hello!");
  socket.on("message", (m)=>{
    for(const sc of sockets){
      sc.send(m.toString('utf-8'))
    }
  });
  socket.on("close", (socket)=>{
    const idx = sockets.indexOf(socket);
    sockets.splice(idx,1);
    console.log("Disconnected socket");
  });
});

연결될 시, 그 소켓을 sockets 라는 빈 배열에 추가한다.

 

그 다음, 그 소켓들 중 누군가 server로 메시지를 보내면, 

server에서 그 sockets에 추가된(connection을 했기에 추가된) socket들 한테 모두 똑같은 메시지를 보낸다.

 

나는 여기서 socket쪽에서 끊기면 배열에서 지우도록 했다.

 

잘 된다.

 

'실시간 > WebSocket을 이용한 채팅' 카테고리의 다른 글

6. 닉네임  (0) 2023.10.25
4. 웹소켓으로 클라이언트와 서버 간 메시지 주고받기  (0) 2023.10.19
3. 웹소켓 이벤트  (0) 2023.10.19
2. 웹소켓 서버 구현  (0) 2023.10.18
1. HTTP와 WebSocket  (0) 2023.10.18