socketIO와 WebSocket은 실시간, 양방향, event 기반의 통신을 가능하게 한다.
❓그렇다면 뭐가 다를까
Socket.IO는 클라이언트와 서버 간의 짧은 대기 시간, 양방향 및 이벤트 기반 통신을 가능하게 하는 라이브러리이며 websocket보다 탄력성이 뛰어나다. websocket은 socketIO가 실시간 양방향 event기반 통신을 제공하는 방법 중 하나일 뿐, 만약 브라우저가 websocket을 지원하지 않는다고 해도 socketIO는 계속 작동한다.
결론은 socketIO가 실시간 기능 같은 것들을 더 쉽게 만드는 편리한 코드를 제공한다!
1. 어떤 event든지 전송할 수 있다. 꼭 message evenet가 아니어도 된다.
2. Javascript object를 전송할 수 있다.
✅ Socket.IO 특징
- socketIO는 websocket의 부가기능이 아님
- 만약 websocket 연결을 할 수 없는 경우, HTTP long polling을 사용하여 wifi 연결이 잠시동안 끊겨도 재연결 시도
- 브라우저가 websocket 연결에 문제가 있거나 firewwall 혹은 proxy가 있어도 실시간 기능 제공
아래의 공식문서를 참고하면 더 자세히 알아볼 수 있다.
✅ Socket.IO 사용
- 설치
npm install socket.io
- 예시
const express = require('express');
const app = express();
const http = require('http');
const server = http.createServer(app);
const { Server } = require("socket.io");
const io = new Server(server);
app.get('/', (req, res) => {
res.sendFile(__dirname + '/index.html');
});
io.on('connection', (socket) => {
console.log('a user connected');
});
server.listen(3000, () => {
console.log('listening on *:3000');
});
'🍞 Computer Science > 네트워크' 카테고리의 다른 글
[CS] 네트워크 총정리 (0) | 2024.07.23 |
---|---|
[네트워크] HTTP vs WebSockets (0) | 2023.02.02 |
[네트워크] REST와 RESTful API (1) | 2022.10.07 |
[네트워크] HTTP에 대해서 (0) | 2022.10.06 |