최근 채팅 관련 앱 사이드 프로젝트를 진행하다가 채팅 기능을 구현하기 위해서 STOMP와 SOCKJS를 사용하기로 했는데 사용하기전에 무엇인지 먼저 알아보고 사용해보자.
STOMP란 간단한 text 지향 메시징 프로토콜이다. 사용 가능한 모든 STOMP 클라이언트가 모든 STOMP 메시지 브로커와 통신하여 언어 및 플랫폼 간에 쉽고 광범위한 메시징 상호 운용성을 제공할 수 있도록 Interoperable 유선 형식을 정의한다.
웹 소켓은 웹을 위한 TCP이다.
웹 소켓 API를 사용하면 웹 애플리케이션이 서버 측 프로세스와의 양방향 통신을 간단한 방식으로 처리할 수 있습니다. 개발자는 이러한 목적으로 XMLHTTPRequest를 사용해 왔지만 XHR은 서버와 통신하는 웹 애플리케이션 개발을 불필요하게 복잡하게 만들었다.
XHR은 비동기식 HTTP이며 서버에서 브라우저로 데이터를 보내기 위해 긴 GET
과 같은 까다로운 기술을 사용해야 하기 때문에 간단한 작업이 매우 복잡해진다.
XHR과 달리 WebSocket
은 브라우저에서 실제 양방향 통신 채널을 제공한다. 웹 소켓에 연결되면 send()
메서드를 호출하여 브라우저에서 서버로 데이터를 보내고 onmessage
이벤트 핸들러를 통해 서버에서 브라우저로 데이터를 받을 수 있다.