[nodejs] 웹 소켓과 비동기 통신

이번 포스트에서는 Node.js 환경에서 웹 소켓을 사용하여 클라이언트와 서버 간 비동기 통신을 구현하는 방법에 대해 알아보겠습니다.

웹 소켓이란?

웹 소켓은 양방향 통신을 지원하는 프로토콜로, 클라이언트와 서버 간 실시간으로 데이터를 교환할 수 있도록 해줍니다. 이전에는 HTTP를 통해 통신하기 때문에 서버에서 클라이언트로 데이터를 전송할 때, 클라이언트가 요청을 보내야 했습니다. 그러나 웹 소켓을 사용하면 서버 또는 클라이언트가 언제든지 데이터를 보낼 수 있으므로 실시간 어플리케이션을 쉽게 구현할 수 있습니다.

웹 소켓 모듈 설치

Node.js에서는 ws 모듈을 사용하여 웹 소켓을 구현할 수 있습니다. 아래 명령어를 통해 모듈을 설치합니다.

npm install ws

웹 솼켓 서버 구현

다음은 Node.js에서 웹 소켓 서버를 구현하는 예제입니다.

const WebSocket = require('ws');

const wss = new WebSocket.Server({ port: 8080 });

wss.on('connection', function connection(ws) {
  ws.on('message', function incoming(message) {
    console.log('received: %s', message);
  });

  ws.send('something');
});

웹 솼켓 클라이언트 구현

웹 소켓을 사용하여 클라이언트와 서버 간 통신을 구현하려면 클라이언트에서도 웹 소켓을 생성해야 합니다.

const WebSocket = require('ws');

const ws = new WebSocket('ws://localhost:8080');

ws.on('open', function open() {
  ws.send('something');
});

ws.on('message', function incoming(message) {
  console.log('received: %s', message);
});

이제 당신은 Node.js에서 웹 소켓을 사용하여 양방향 비동기 통신을 구현할 수 있는 방법을 알게 되었습니다. 웹 소켓은 웹 기반 실시간 어플리케이션을 구현하기에 매우 유용한 기술입니다.

더 많은 정보는 공식 웹 소켓 문서를 참고하세요.