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.io는 long-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
- 특징
- 데이터를 보내고 받았는지 확인하지 않음 → ******************신뢰도 낮음, TCP에 비해 통신 비용(부담)이 적음
- 데이터 전달 순서가 보장되지 않음
- TCP보다 전송 속도가 빠름
- 특징
- 데이터를 나눠 보낼 수 있고, 받는 곳에서 재조립 → 누락된 조각을 재요청 가능 → 데이터 무결성 보장
- TCP로 서버/클라이언트간 연결이 된 경우 데이터를 양방향으로 소통 가능
- 데이터의 순서가 뒤바뀌는 일 없이 안정적이라 신뢰 가능
- UDP에 비해 데이터 송수신 비용(부담)이 큼
- UDP보다 전송 속도가 느림
- 웹소켓을 사용할 수 없는 브라우저인 경우 서버에서 데이터를 일정 간격마다 받아오는 polling 기능으로 실시간 기능 구현
- transmission speed and efficiency matter more than security and reliability
[TCP/UDP] TCP와 UDP의 특징과 차이
오늘은 네트워크의 계층들 중 전송 계층에서 사용하는 프로토콜에 대해서 알아보려고 합니다. 전송계층은 송신자와 수신자를 연결하는 통신서비스를 제공하는 계층으로, 쉽게 말해 데이터의
mangkyu.tistory.com