[javascript] Socket.io를 사용하여 실시간 채팅 봇을 어떻게 구현할 수 있나요?
Socket.io는 실시간 웹 애플리케이션을 구현하는 데 사용되는 JavaScript 라이브러리입니다. 이를 사용하여 실시간 채팅 봇을 만들 수 있습니다.
- 서버 설정: 먼저, Node.js와 Express.js를 사용하여 서버를 설정해야 합니다. 다음과 같이 패키지를 설치해주세요.
npm install express socket.io
- 서버에서 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('서버가 실행되었습니다.');
});
- 클라이언트 연결: 클라이언트 측에서 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>
- 채팅 메시지 전송: 클라이언트 측에서 메시지를 전송하고, 서버에서 전달받은 메시지를 클라이언트에 표시하는 기능을 구현해야 합니다.
- 클라이언트: sendButton을 클릭하면 입력된 메시지를 서버로 전송할 수 있도록 설정하고, 메시지 입력 필드를 초기화합니다.
- 서버: 클라이언트로부터 전달된 메시지를 다른 클라이언트에게 broadcast합니다.
// 서버
io.on('connection', (socket) => {
socket.on('chat message', (message) => {
io.emit('chat message', message);
});
});
이렇게 구현하면 서버와 클라이언트 간에 실시간 채팅이 가능한 채팅 봇을 만들 수 있습니다. Socket.io를 사용하면 서버와 클라이언트 간의 양방향 통신이 가능하므로 실시간 채팅 기능을 손쉽게 구현할 수 있습니다.
참고 자료:
- Socket.io 공식 문서: https://socket.io/docs/
- Node.js 공식 사이트: https://nodejs.org/
- Express.js 공식 사이트: https://expressjs.com/