[nodejs] Node.js 웹 소켓

웹 소켓은 실시간 양방향 통신을 제공하는 기술로, 클라이언트와 서버 간에 지속적인 연결을 유지합니다. Node.js 는 이러한 웹 소켓을 구현하기 위한 여러 가지 모듈을 제공합니다. 이 포스트에서는 Node.js 의 ws 모듈을 사용하여 간단한 웹 소켓 서버를 만드는 방법을 알아보겠습니다.

ws 모듈 설치

ws 모듈을 사용하기 위해서는 먼저 npm을 사용하여 설치해야 합니다. 아래 명령을 사용하여 ws 모듈을 설치할 수 있습니다.

npm install ws

웹 소켓 서버 만들기

다음은 ws 모듈을 사용하여 간단한 웹 소켓 서버를 만드는 예제입니다.

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('Hello, Client!');
});

위 예제에서는 ws 모듈을 불러오고, WebSocket.Server를 생성하여 8080 포트에서 웹 소켓 서버를 시작합니다. 클라이언트가 연결되면 connection 이벤트가 발생하고, 이벤트 핸들러에서 클라이언트로부터 메시지를 받고 응답하는 방식으로 동작합니다.

웹 소켓 클라이언트 만들기

웹 소켓 클라이언트를 만들기 위해서는 웹 브라우저의 WebSocket API를 사용하거나, Node.js에서 ws 모듈을 사용할 수 있습니다. 아래는 Node.js에서 ws 모듈을 사용하여 간단한 웹 소켓 클라이언트를 만드는 예제입니다.

const WebSocket = require('ws');

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

ws.on('open', function open() {
  console.log('connected');

  ws.send('Hello, Server!');
});

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

위 예제에서는 ws 모듈을 사용하여 서버에 연결하고, 연결이 성공하면 open 이벤트가 발생합니다. 이후 서버로 메시지를 전송하거나 서버로부터 메시지를 받을 때 각각 sendmessage 이벤트가 발생합니다.

이제 ws 모듈을 사용하여 간단한 웹 소켓 서버와 클라이언트를 만드는 방법에 대해 알아보았습니다. 웹 소켓을 통해 빠르고 실시간으로 양방향 통신을 구현할 수 있으며, Node.js의 ws 모듈을 사용하면 간단하게 웹 소켓 기능을 구현할 수 있습니다.

참고 문헌: