Web Socket과 Socket.io 차이 설명

Web Socket

Web Socket은 HTML5에서 등장한 실시간 양방향 통신 기술입니다.

Socket.io

Socket.io는 Web Socket을 기반으로 한 실시간 양방향 통신 라이브러리입니다.

Web Socket과 Socket.io 는 웹서버와 클라이언트 간 데이터 통신을 위한 프로토콜입니다.
두 가지 모두 소켓 기반이며, 각각 HTTP/HTTPS 와 TCP/UDP 를 이용해서 통신한다는 점에서는 동일하지만, 차이점 또한 존재하는데요. 이번 포스팅에서는 이 둘의 차이점에 대해 알아보겠습니다.

웹소켓과 소켓.io 의 차이는 무엇인가요?
가장 큰 차이점은 서버-클라이언트 모델이냐 아니냐 입니다. 쉽게 말해 웹소켓은 Server-Client 모델이고, 소켓.io는 Client-Server 모델입니다.

Socket.io 가 왜 Client-Server 모델인가요?
쉽게 말해서 한 쪽에서만 일방적으로 데이터를 보내는 방식이기 때문입니다. 즉, 요청(Request)하면 응답(Response)받는 구조라는 거죠. 반면 웹소켓은 양방향 통신이라는 특징이 있습니다.

왜 웹소켓이 좀 더 나은가요?
물론 모든 경우에 있어서 웹소켓이 좋다고 말할 수는 없습니다. 하지만 대부분의 경우엔 웹소켓이 유리한데요. 특히 실시간 채팅 같은 서비스를 구현한다면 웹소켓이 훨씬 좋습니다. 왜냐하면 웹소켓은 메시지 전달 속도가 빠르기 때문이죠. 게다가 보안성 측면에서도 웹소켓이 조금 더 낫습니다.