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

Socket.io는 실시간 웹 애플리케이션을 구현하는 데 사용되는 JavaScript 라이브러리입니다. 이를 사용하여 실시간 채팅 봇을 만들 수 있습니다.

  1. 서버 설정: 먼저, Node.js와 Express.js를 사용하여 서버를 설정해야 합니다. 다음과 같이 패키지를 설치해주세요.
npm install express socket.io
  1. 서버에서 Socket.io 초기화: 서버 파일에서 Socket.io를 초기화해야 합니다. 다음과 같이 코드를 작성해주세요.
const express = require('express');
const app = express();
const http = require('http').createServer(app);
const io = require('socket.io')(http);

io.on('connection', (socket) => {
  // 클라이언트와의 연결이 성립되었을 때 실행되는 코드
});

http.listen(3000, () => {
  console.log('서버가 실행되었습니다.');
});
  1. 클라이언트 연결: 클라이언트 측에서 Socket.io를 사용하여 서버와 연결해야 합니다. HTML 파일에 다음과 같이 코드를 작성해주세요.
<!DOCTYPE html>
<html>
<head>
  <title>실시간 채팅</title>
</head>
<body>
  <h1>실시간 채팅</h1>

  <input id="messageInput" type="text" />
  <button id="sendButton">전송</button>

  <ul id="messageList"></ul>

  <script src="/socket.io/socket.io.js"></script>
  <script>
    const socket = io();

    const messageInput = document.getElementById('messageInput');
    const sendButton = document.getElementById('sendButton');
    const messageList = document.getElementById('messageList');

    sendButton.addEventListener('click', () => {
      const message = messageInput.value;
      socket.emit('chat message', message);
      messageInput.value = '';
    });

    socket.on('chat message', (message) => {
      const li = document.createElement('li');
      li.innerHTML = message;
      messageList.appendChild(li);
    });
  </script>
</body>
</html>
  1. 채팅 메시지 전송: 클라이언트 측에서 메시지를 전송하고, 서버에서 전달받은 메시지를 클라이언트에 표시하는 기능을 구현해야 합니다.
// 서버
io.on('connection', (socket) => {
  socket.on('chat message', (message) => {
    io.emit('chat message', message);
  });
});

이렇게 구현하면 서버와 클라이언트 간에 실시간 채팅이 가능한 채팅 봇을 만들 수 있습니다. Socket.io를 사용하면 서버와 클라이언트 간의 양방향 통신이 가능하므로 실시간 채팅 기능을 손쉽게 구현할 수 있습니다.

참고 자료: