[javascript] WebSocket 통신

WebSocket은 웹 어플리케이션 간에 실시간 양방향 통신을 가능하게 하는 기술입니다. HTTP 프로토콜의 단점을 보완하고, 실시간 데이터 전송에 적합합니다.

WebSocket의 동작 방식

WebSocket은 클라이언트와 서버 간에 TCP 연결을 맺고, 이후에는 양방향 통신 채널을 유지합니다. 클라이언트와 서버가 연결을 맺은 후에는 TCP 연결을 유지하면서, 양쪽에서 원하는 시점에 데이터를 주고 받을 수 있습니다.

WebSocket을 활용한 예시

아래는 JavaScript를 사용하여 WebSocket을 통해 서버와 클라이언트 간의 간단한 통신을 하는 예시입니다.

// 클라이언트
const socket = new WebSocket('ws://서버주소:포트번호');

socket.onopen = function(event) {
    console.log('서버와 연결되었습니다.');
    socket.send('안녕, 서버!');
};

socket.onmessage = function(event) {
    console.log('서버로부터 메시지를 받았습니다: ' + event.data);
};

// 서버
const WebSocket = require('ws');

const wss = new WebSocket.Server({ port: 포트번호 });

wss.on('connection', function connection(ws) {
    ws.on('message', function incoming(message) {
        console.log('클라이언트로부터 메시지를 받았습니다: %s', message);
        ws.send('안녕, 클라이언트!');
    });
});

이 예시에서 클라이언트와 서버가 WebSocket을 사용하여 메시지를 주고 받습니다.

마치며

WebSocket을 사용하면 실시간 양방향 통신이 가능하며, 웹 기반의 실시간 채팅, 멀티플레이어 게임, 주식 시세 업데이트 등 다양한 분야에 활용될 수 있습니다.

더 많은 정보와 예시는 MDN Web Docs에서 확인할 수 있습니다.