소켓 통신을 위한 자바스크립트 미들웨어 사용법
소개
소켓 통신은 서버와 클라이언트 간 실시간으로 데이터를 주고받을 수 있는 방법 중 하나입니다. 자바스크립트 미들웨어는 소켓 통신을 쉽게 구현하도록 도와주는 도구입니다. 본 포스트에서는 자바스크립트를 사용하여 소켓 통신을 위한 미들웨어의 사용법에 대해 알아보겠습니다.
필요한 도구
자바스크립트 소켓 통신을 위해서는 다음과 같은 도구들이 필요합니다:
- Node.js: 서버사이드 자바스크립트 환경인 Node.js가 필요합니다. Node.js를 설치하기 위해서는 공식 웹사이트에서 다운로드 받아 설치해야 합니다.
- Socket.io: Socket.io는 자바스크립트를 사용한 실시간 웹 어플리케이션을 위한 라이브러리입니다. Socket.io를 설치하기 위해서는 npm을 사용하여 패키지를 설치해야 합니다.
설치 및 설정
- Node.js 설치: Node.js 공식 웹사이트에서 Node.js를 다운로드 받고 설치합니다.
- 프로젝트 생성: 원하는 위치에 새로운 디렉토리를 생성하고, 해당 디렉토리로 이동합니다.
- 패키지 초기화: 명령 프롬프트나 터미널에서
npm init
명령을 실행하여 프로젝트의 패키지를 초기화합니다. 이 과정에서package.json
파일이 생성됩니다. - Socket.io 설치: 명령 프롬프트나 터미널에서
npm install socket.io
명령을 실행하여 Socket.io를 설치합니다. - 서버 파일 작성: 프로젝트 디렉토리 안에
server.js
파일을 생성하고 아래의 코드를 작성합니다.
const app = require('http').createServer();
const io = require('socket.io')(app);
// 클라이언트가 연결되었을 때 실행되는 이벤트 핸들러
io.on('connection', (socket) => {
console.log('클라이언트가 연결되었습니다.');
// 클라이언트로부터 메시지를 받으면 실행되는 이벤트 핸들러
socket.on('message', (data) => {
console.log('받은 메시지:', data);
// 받은 메시지를 다른 클라이언트들에게 전송
io.emit('message', data);
});
// 클라이언트와의 연결이 끊어졌을 때 실행되는 이벤트 핸들러
socket.on('disconnect', () => {
console.log('클라이언트와의 연결이 끊어졌습니다.');
});
});
// 서버를 3000번 포트로 시작
app.listen(3000, () => {
console.log('서버가 시작되었습니다.');
});
- 클라이언트 파일 작성: 프로젝트 디렉토리 안에
index.html
파일을 생성하고 아래의 코드를 작성합니다.
<!DOCTYPE html>
<html>
<head>
<title>Socket.io Example</title>
<script src="https://cdn.socket.io/socket.io-3.1.3.min.js"></script>
<script>
// 소켓 연결
const socket = io.connect('http://localhost:3000');
// 서버로 메시지 보내기
function sendMessage() {
const message = document.getElementById('message').value;
socket.emit('message', message);
document.getElementById('message').value = '';
}
// 서버로부터 메시지 받기
socket.on('message', (data) => {
const messageBox = document.getElementById('messageBox');
messageBox.innerHTML += '</br>받은 메시지: ' + data;
});
</script>
</head>
<body>
<h1>Socket.io Example</h1>
<div id="messageBox"></div>
<input type="text" id="message" placeholder="메시지 입력">
<button onclick="sendMessage()">전송</button>
</body>
</html>
실행
- 명령 프롬프트나 터미널에서
node server.js
명령을 실행하여 서버를 시작합니다. - 웹 브라우저에서
http://localhost:3000
주소로 접속합니다. - 메시지를 입력하고 전송 버튼을 클릭하면 다른 클라이언트들로부터 받은 메시지를 확인할 수 있습니다.
- 소켓 통신이 정상적으로 작동하는지 확인합니다.
마무리
위의 예제를 통해 자바스크립트를 사용하여 소켓 통신을 위한 미들웨어인 Socket.io의 사용법에 대해 알아보았습니다. Socket.io를 사용하여 간편하게 실시간 웹 어플리케이션을 개발할 수 있습니다. 자세한 설정 및 API에 대해서는 Socket.io 공식 문서를 참고하시기 바랍니다.