[네트워크] SocketIO vs WebSockets

2023. 2. 2. 18:09·🍞 Computer Science/네트워크

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

Reliable Rest assured! In case the WebSocket connection is not possible, it will fall back to HTTP long-polling. And if the connection is lost, the client will automatically try to reconnect.

socket.io

 

✅ 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 > 네트워크' 카테고리의 다른 글

[네트워크] TCP/IP 4계층 모델에 대해서  (0) 2025.06.06
[CS] 네트워크 총정리  (0) 2024.07.23
[네트워크] HTTP vs WebSockets  (0) 2023.02.02
[네트워크] REST와 RESTful API  (1) 2022.10.07
[네트워크] HTTP에 대해서  (0) 2022.10.06
'🍞 Computer Science/네트워크' 카테고리의 다른 글
  • [네트워크] TCP/IP 4계층 모델에 대해서
  • [CS] 네트워크 총정리
  • [네트워크] HTTP vs WebSockets
  • [네트워크] REST와 RESTful API
박빵이
박빵이
2025년에도 갓생살기
  • 박빵이
    기억보다 기록
    박빵이
  • 전체
    오늘
    어제
    • 분류 전체보기 (337)
      • 🍞 FrontEnd (97)
        • HTML+CSS (4)
        • JavaScript (17)
        • TypeScript (4)
        • React (52)
        • Next.js (2)
        • Android (15)
      • 🍞 BackEnd (24)
        • Java (15)
        • Node.js (6)
        • Spring (1)
      • 🍞 Cloud & Infra (0)
        • AWS SAA (0)
        • Microsoft Azure (0)
      • 🍞 Algorithm (147)
        • C++ (4)
        • Baekjoon (41)
        • Programmers (97)
      • 🍞 Computer Science (18)
        • 운영체제 (1)
        • 데이터 통신 (6)
        • 네트워크 (6)
        • 데이터베이스 (1)
      • 🍞 대외활동 & 부트캠프 (42)
        • 삼성 청년 SW 아카데미 (1)
        • LG유플러스 유레카 (0)
        • 한국대학생IT경영학회 (1)
        • IT연합동아리 UMC (17)
        • 길벗 블로깅 멘토 (18)
        • IT연합동아리 피로그래밍 (3)
        • 개발 컨퍼런스 (2)
  • 블로그 메뉴

    • Admin
  • 링크

    • GitHub
  • 인기 글

  • 태그

    map
    알고리즘
    level2
    길벗 블로깅 멘토
    프로그래머스
    Android
    umc
    유니온파인드
    위상정렬
    안드로이드
    react
    C++
    백준
    level1
    코틀린
    Java
    길벗 블로깅 멘토링
    JavaScript
    코딩자율학습
    Front
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
박빵이
[네트워크] SocketIO vs WebSockets
상단으로

티스토리툴바