[javascript] Socket.io를 사용하여 실시간 채팅 게임을 어떻게 구현할 수 있나요?

Socket.io를 사용하여 실시간 채팅 게임을 구현하는 방법에 대해 알아보겠습니다.

  1. Socket.io 설치하기 먼저, 프로젝트 폴더에서 다음 명령을 실행하여 Socket.io를 설치합니다:

    npm install socket.io
    
  2. 서버 설정하기 서버 측에서 Socket.io를 초기화하고 연결을 처리해야합니다. 다음과 같이 서버 파일에 코드를 추가합니다:

    const express = require('express');
    const socketIO = require('socket.io');
    
    const app = express();
    const server = app.listen(3000, () => {
      console.log('서버가 시작되었습니다. 포트: 3000');
    });
    
    const io = socketIO(server);
    
    io.on('connection', (socket) => {
      console.log('새로운 클라이언트가 접속했습니다.');
    
      // 클라이언트와의 이벤트 처리
      socket.on('chat message', (msg) => {
        console.log('수신한 메시지: ' + msg);
        io.emit('chat message', msg);
      });
    
      // 클라이언트 연결 해제 시 처리
      socket.on('disconnect', () => {
        console.log('클라이언트가 연결 해제되었습니다.');
      });
    });
    
  3. 클라이언트 설정하기 클라이언트 측에서도 Socket.io를 초기화하여 서버와 연결합니다. 다음과 같이 클라이언트 HTML 파일에 코드를 추가합니다:

    <!DOCTYPE html>
    <html>
    <head>
      <title>실시간 채팅 게임</title>
    </head>
    <body>
      <h1>실시간 채팅 게임</h1>
      <input id="messageInput" type="text" placeholder="메시지 입력">
      <button id="sendButton">전송</button>
      <ul id="messages"></ul>
    
      <script src="/socket.io/socket.io.js"></script>
      <script>
        const socket = io();
    
        document.getElementById('sendButton').addEventListener('click', () => {
          const input = document.getElementById('messageInput');
          const message = input.value;
          socket.emit('chat message', message);
          input.value = '';
        });
    
        socket.on('chat message', (msg) => {
          const newMessage = document.createElement('li');
          newMessage.textContent = msg;
          document.getElementById('messages').appendChild(newMessage);
        });
      </script>
    </body>
    </html>
    
  4. 실행하기 서버 파일을 실행하고 웹 브라우저에서 클라이언트 HTML 파일을 엽니다. 메시지를 입력하고 전송 버튼을 클릭하면 메시지가 실시간으로 채팅창에 표시됩니다.

Socket.io를 사용하면 클라이언트와 서버 간에 실시간 통신을 쉽게 구현할 수 있습니다. 이를 응용하여 채팅 게임과 같은 다양한 실시간 기능을 개발할 수 있습니다.

더 자세한 정보를 원하시면 Socket.io 공식 문서를 확인해보세요.