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
Socket.io
- 채팅앱과 같은 더 복잡한 곳에 적합
- 네임스페이스를 통한 다중화를 지원, 네임스페이스를 사용하면 사용되는 TCP 연결 수를 최소화하고 서버에 소켓 포트를 저장할 수 있음
- 서버 측에서 연결된 모든 클라이언트에 이벤트를 유연하게 브로드캐스트할 수 있고, 회의실 기능을 통해 클라이언트 하위 집합에 이벤트를 브로드캐스트할 수도 있음
- WebSocket을 지원하지 않는 환경에서 유용한 대체 옵션으로 HTTP 긴 폴링 을 제공
- 구성 가능한 Ping/Pong 하트비트 메커니즘을 제공하여 연결이 활성 상태인지 여부를 감지하고, 또한 클라이언트 연결이 끊어지면 자동으로 다시 연결
공부하면서 많이 도움된 블로그 입니다.
https://inpa.tistory.com/category/Node.js/Socket.IO
'항해 일지' 카테고리의 다른 글
소셜 로그인(카톡, 구글, 네이버) (0) | 2022.12.10 |
---|---|
방탄 Helmet (0) | 2022.12.07 |
PM2 (0) | 2022.12.05 |
계층형 아키텍처 패턴 (0) | 2022.12.01 |
[DB] 트랜잭션의 ACID (0) | 2022.11.29 |