본문 바로가기

항해99_10기/[5주차] Node.js

[5주차] soket.io 경험하기

soket.io

Socket.IO is a library that enables low-latency, bidirectional  and event-based  communication between a client and a server.

 

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

 

 

GitHub - socketio/socket.io: Realtime application framework (Node.JS server)

Realtime application framework (Node.JS server). Contribute to socketio/socket.io development by creating an account on GitHub.

github.com

 

 

soket.io 특징

  • soket.iolong-polling connection을 처음 만든 Engine.IO에 기반해서 webSocket을 포함하고 있는 UDP 통신을 가능하게 해주는 라이브러리 (JS에서 가장 많이 사용)
    • transmission speed and efficiency matter more than security and reliability 
      • 웹소켓을 사용할 수 없는 브라우저인 경우 서버에서 데이터를 일정 간격마다 받아오는 polling 기능으로 실시간 기능 구현
        • long-polling : http 통신에서 서버가 req를 날리면, 보내줄 데이터가 없어도 빈 데이터로 res를 날려 바로 바로 사이클을 종결하는데, long-polling은 req를 받으면 전송할 데이터가 생기거나, timeout 될때까지 서버 통신을 Keep-Alive header를 통해 계속 열어 두는 방식임
        • WebSockets vs Long Polling | Ably Blog: Data in Motion
      💡 UDP (User Datagram Protocol) : 비연결성 프로토콜로, 데이터 통신 프로토콜 중 데이터 보안을 중요시하기보다 실시간 소통이 필요한 곳에 사용하는 통신 규약
      • 특징
        • 데이터를 보내고 받았는지 확인하지 않음 → ******************신뢰도 낮음, TCP에 비해 통신 비용(부담)이 적음
        • 데이터 전달 순서가 보장되지 않음
        • TCP보다 전송 속도가 빠름
      💡 TCP (Transmission Control Protocol) : 신뢰성 있는 데이터 송수신을 위한 연결 지향적 프로토콜
      • 특징
        • 데이터를 나눠 보낼 수 있고, 받는 곳에서 재조립 → 누락된 조각을 재요청 가능 → 데이터 무결성 보장
        • TCP로 서버/클라이언트간 연결이 된 경우 데이터를 양방향으로 소통 가능
        • 데이터의 순서가 뒤바뀌는 일 없이 안정적이라 신뢰 가능
        • UDP에 비해 데이터 송수신 비용(부담)이 큼
        • UDP보다 전송 속도가 느림
 

[TCP/UDP] TCP와 UDP의 특징과 차이

오늘은 네트워크의 계층들 중 전송 계층에서 사용하는 프로토콜에 대해서 알아보려고 합니다. 전송계층은 송신자와 수신자를 연결하는 통신서비스를 제공하는 계층으로, 쉽게 말해 데이터의

mangkyu.tistory.com