WebSocket 과 Socket.io는 사용하는 방향성에 따라 차이가 있으나, 이게 무조건 좋아 , 저게 무조건 나빠라는 부분은 없습니다. 그러나 Socket.io가 WebSocket보다는 평안한 부분이 있는건 사실입니다.
Websocket
- 엄청나게 가벼워서 단순한 사용에 적합
- 누구인지에 따라 절대적인 통제권을 가짐
- 로깅, 구독, 방, 네임스페이스, 자동복구 등 기술들이 없으므로 모두 직접 구현
- 디자인을 먼저 디버깅해야 하는데 시간이 오래 걸림
- http처럼 한번 요구하고 한번 받고 끝인 형태가 아닌 실시간으로 상태저장하면서 사용
- 서버 계층이 각각의 개별 websocket 연결을 추적하고 상태 정보를 유지 및 관리를 해야하기 때문에 대규모 처리가 까다로움
- 일부 브라우저는 websocket 지원 x
https://ko.wikipedia.org/wiki/%EC%9B%B9%EC%86%8C%EC%BC%93
웹소켓 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 웹소켓(WebSocket)은 하나의 TCP 접속에 전이중 통신 채널을 제공하는 컴퓨터 통신 프로토콜이다. 웹소켓 프로토콜은 2011년 IETF에 의해 RFC 6455로 표준화되었으며 웹
ko.wikipedia.org
Socket.io
- 채팅앱과 같은 더 복잡한 곳에 적합
- 네임스페이스를 통한 다중화를 지원, 네임스페이스를 사용하면 사용되는 TCP 연결 수를 최소화하고 서버에 소켓 포트를 저장할 수 있음
- 서버 측에서 연결된 모든 클라이언트에 이벤트를 유연하게 브로드캐스트할 수 있고, 회의실 기능을 통해 클라이언트 하위 집합에 이벤트를 브로드캐스트할 수도 있음
- WebSocket을 지원하지 않는 환경에서 유용한 대체 옵션으로 HTTP 긴 폴링 을 제공
- 구성 가능한 Ping/Pong 하트비트 메커니즘을 제공하여 연결이 활성 상태인지 여부를 감지하고, 또한 클라이언트 연결이 끊어지면 자동으로 다시 연결
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
공부하면서 많이 도움된 블로그 입니다.
https://inpa.tistory.com/category/Node.js/Socket.IO
'Node.js/Socket.IO' 카테고리의 글 목록
성장 욕구가 가파른 초보 개발자로서 공부한 내용을 쉽게 풀어쓴 기술 블로그를 운영하고 있습니다.
inpa.tistory.com
'항해 일지' 카테고리의 다른 글
소셜 로그인(카톡, 구글, 네이버) (0) | 2022.12.10 |
---|---|
방탄 Helmet (0) | 2022.12.07 |
PM2 (0) | 2022.12.05 |
계층형 아키텍처 패턴 (0) | 2022.12.01 |
[DB] 트랜잭션의 ACID (0) | 2022.11.29 |