일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- 3주차
- db
- 스파르타코딩클럽
- NoSQL
- Transaction
- JWT
- Sequelize
- 위키백과
- 1주차
- node winston
- Get
- SQL
- 5주차
- OpenAPI
- 웹 스크래핑(크롤링)
- 노드 윈스턴
- 부트스트랩
- post
- HTTPS
- 비동기
- cors
- 항해99
- 트랜잭션
- 개발일지
- 4주차
- MongoDB
- 숙제
- nginx
- 2주차
- Node.js
- Today
- Total
얼음꽃의 일지
WebSocket 과 Socket.io 본문
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 |