웹소켓
- 서버 ↔ 클라이언트 간의 실시간 메세지 교환에 사용되는 통신 규약 프로토콜!!
- 기존 HTTP 통신 형태인 단방향과 다르게 양방향 통신이다!
- 기존 HTTP 통신은? 단방향 통신(클→서버 요청 , 서버→클 응답)
- 웹소켓에서도 문제점? 지원하지 않는 브라우저 있음!
이를 해결하기 위해서 라이브러리를 사용하여 통신할 수 있도록 해줄 수 있다.
-> socket.io 혹은 SockJS
SockJS VS socket.io
SockJS
Websocket같은 객체를 지원하는 브라우저 JS라이브러리.
SockJS는 브라우저와 웹 서버 간에 짧은 대기 시간, 전이중, 도메인 간 통신 채널을 생성하는 일관된 크로스 브라우저 Javascript API를 제공합니다.
서버에서 stomp라는 서브 프로토콜을 사용한다면, 이 위에서 작동이 잘되는 stompJS와 함께 잘 쓰인다.
- STOMP ?
STOMP는 단순(또는 스트리밍) 텍스트 지향 메시징 프로토콜입니다.
STOMP는 STOMP 클라이언트가 모든 STOMP 메시지 브로커와 통신할 수 있도록 상호 운용 가능한 와이어 형식을 제공하여 다양한 언어, 플랫폼 및 브로커 간에 쉽고 광범위한 메시징 상호 운용성을 제공합니다.
spring 기반!
socket.io
Socket.IO는 클라이언트와 서버 간의 짧은 대기 시간, 양방향 및 이벤트 기반 통신을 가능하게 하는 라이브러리입니다.
nodejs 기반!