텍스트, 바이너리 데이터만 주고 받을 수 있다
(WebRTC 는 영상, 음악, 파일 등 다른 데이터도 가능하다)
개념 참고 - Frontend 를 위한 Socket과 WebSocket
WebSocket VS socket.io
WebSocket
- WebSocket 은 웹 표준이다
- 가볍고, 빠르다
- Node.js 에서 표준 웹소켓을 구현하려면 ws 라이브러리를 사용하면 된다
- 가상화폐 거래소처럼 데이터 전송이 많은 경우에는 빠르고 비용이 적은 표준 WebSocket을 이용하는게 좋을 것
ws npm
socket.io
- 웹소켓에 비해 무겁고, 느리다
- socket.io 는 소켓 연결에 실패했을 때 fallback 등을 통해 알아서 연결을 시도한다
- HTML5 이상에서만 지원되는 웹 소켓의 단점을 보완하여, 지원되지 않는 브라우저에서도 동작할 수 있게 해준다
- 서버에서 연결된 소켓(사용자)들을 세밀하게 관리해야하는 서비스인 경우에는 Broadcasting 기능이 있는 socket.io을 쓰는게 유지보수 측면에서 훨씬 이점이 많을 것
참고 - stackoverflow
참고 - 웹 소켓과 socket.io