STOMPWebSocket 프로토콜은 두 가지 유형의 메시지를 정의하고 있지만, 그 메시지의 내용까지는 정의하고 있지 않다.STOMP은 WebSocket 위에서 동작하는 프로토콜로써, 클라이언트와 서버가 전송할 메시지 유형, 형식, 내용들을 정의하는 매커니즘이다.STOMP를 사용해 좀 더 편리하게 WebSocket을 사용할 수 있다. 다만 STOMP의 기능이 개발중인 서비스에 적절한지에 대한 판단은 필요하다.STOMP 란?STOMP은 Simple Text Oriented Messaging Protocol 약자로 TCP 또는 WebSocket 같은 양방향 네트워크 프로토콜 기반으로 동작한다.이름에서도 알 수 있듯이, STOMP는 텍스트 지향 프로토콜이지만 Message Payload에는 Text 또는 Bi..
네트워크/WebSocket
SockJS지금까지는 클라이언트-서버 간에 WebSocket 연결과 메시지 주고받는 방법에 대해 살펴보았다.그런데, 클라이언트-서버 WebSocket 통신이 순탄하게만 진행될 수 있을까?아니다. 그럼, 발생할 수 있는 예외 상황은 어떤 것이 있을지 살펴보자.우선, 모든 클라이언트의 브라우저에서 WebSocket을 지원한다는 보장이 없다. 두 번째로, 클라이언트/서버 중간에 위치한 프록시가 Upgrade 헤더를 해석하지 못해 서버에 전달하지 못할 수 있다. 마지막으로, 클라이언트/서버 중간에 위치한 프록시가 유휴 상태에서 도중에 커넥션 종료시킬 수도 있다.이러한 문제는 WebSocket Emulation을 통해서 해결이 가능하다.WebSocket Emulation 이란, 우선 WebSocket을 첫 번..
WebSocket 소개WebSocket 프로토콜은 표준 된 방법으로 서버-클라이언트 간에 단일 TCP 커넥션을 이용해서 양방향 통신을 제공한다.특징기존의 다른 TCP 기반의 프로토콜과 다르게, WebSocket은 HTTP 요청 기반으로 Handshake 과정을 거쳐 커넥션을 생성한다. 덕분에, 초기 WebSocket Handshake 요청은 추가적인 방화벽 설정 없이 80, 443 포트를 사용하여 양방향 통신이 가능하다. 또한 HTTP 규격 그대로 유지할 수 있기 때문에 HTTP 인증, CORS 등을 동일하게 적용할 수 있다는 장점이 있다.커넥션 FlowWebSocket은 커넥션을 맺기 위해 HTTP 요청을 보내는데, 아래와 같이 HTTP 요청 헤더에 Upgrade 헤더와 Connection 포함한다.#..