socket.io 사용해보기
2024. 9. 30. 21:48ㆍ[Node.js_6기 본캠프 TIL]
1. Socket.io란?
Socket.io는 Node.js를 이용해 웹 어플리케이션에서 실시간 통신을 구현하기 위한 라이브러리입니다. 클라이언트와 서버 간의 저지연(low-latency), 양방향(bidirectional), 이벤트 기반(event-based) 통신을 가능하게 합니다. 웹소켓(WebSocket)을 기반으로 동작하며, 웹소켓이 지원되지 않는 브라우저에서는 HTTP long-polling 방식을 사용하여 실시간 통신을 구현합니다.
2. Socket.io 설치하기
다른 라이브러리들과 동일하게, 터미널을 통해 간편하게 다운로드 받을 수 있습니다.
npm install socket.io
3. Socket.io 세팅하기
app.js나 index.js 등 메인 파일에 2가지 방법으로 세팅할 수 있습니다.
- 표준 방식: ECMAScript 모듈
import { Server } from "socket.io";
- 레거시 방식: CommonJS
const { Server } = require("socket.io");
메인 파일 예시는 하기와 같습니다.
import express from 'express';
import { createServer } from 'node:http';
import { fileURLToPath } from 'node:url';
import { dirname, join } from 'node:path';
import { Server } from 'socket.io';
const app = express();
const server = createServer(app);
const io = new Server(server);
const __dirname = dirname(fileURLToPath(import.meta.url));
app.get('/', (req, res) => {
res.sendFile(join(__dirname, 'index.html'));
});
io.on('connection', (socket) => {
console.log('a user connected');
});
server.listen(3000, () => {
console.log('server running at http://localhost:3000');
});
3. emit과 on
io.on('connection', (socket) => {
socket.on('chat message', (msg) => {
io.emit('chat message', msg);
});
});
위의 예시와 같은 코드는 socket.io를 사용한다면 자주 보게 되는 기본 구조입니다. 'emit'이 외치기라면 'on'은 듣기라고 할 수 있습니다.
'[Node.js_6기 본캠프 TIL]' 카테고리의 다른 글
[CH 4 리얼 타임 과제] 트러블슈팅 - 1002 (1) | 2024.10.02 |
---|---|
[CH 4 리얼 타임 과제] 트러블슈팅 - 1001 (3) | 2024.10.01 |
[개념정리] 웹소켓이란? (0) | 2024.09.27 |
CH 3 풋살 온라인 프로젝트 - 마무리 (2) | 2024.09.25 |
[SQL 코드카타] 가격대 별 상품 개수 구하기(MySQL) (1) | 2024.09.24 |