스프링 웹소켓 예제

SockJS 프로토콜은 서버가 하트비트 메시지를 보내 프록시가 연결이 중단되는 것을 막아야 합니다. 스프링 SockJS 구성에는 주파수를 사용자 지정하는 데 사용할 수 있는 heartbeatTime이라는 속성이 있습니다. 기본적으로 하트비트는 해당 연결에서 다른 메시지가 전송되지 않았다고 가정하면 25초 후에 전송됩니다. 이 25초 값은 공용 인터넷 응용 프로그램에 대한 다음 IETF 권장 사항과 일치합니다. Spring의 SockJsService에서 suppressCors 속성을 통해 이러한 CORS 헤더의 추가를 비활성화할 수도 있습니다. 예를 들어 Java config 또는 XML 네임스페이스에서 만든 SimpMessagingTemplate를 삽입하여 모든 응용 프로그램 구성 요소에서 사용자 대상으로 메시지를 보낼 수도 있습니다(예: 자격에 필요한 경우 빈 이름은 “brokerMessagingTemplate”입니다) @Qualifier 있음): http와 마찬가지로 websocket은 서버와 클라이언트 간에 양방향, 완전 이중 통신 채널을 제공하는 통신 프로토콜이기도 합니다. 일단, 클라이언트와 서버 간에 웹 소켓 연결이 설정되면, 양 당사자는 연결이 당사자 중 하나에 의해 닫혀 때까지 끝없이 정보를 교환 할 수 있으며, 이것은 웹 소켓이 클라이언트와 HTTP보다 선호되는 주된 이유입니다. 서버는 서버에서 requet가 제공되고 HTTP 연결을 다시 여는 시간 제약이 있기 때문에 HTTP 연결이 닫히면 HTTP 연결이 닫히기 때문에 높은 빈도로 낮은 대기 시간으로 정보를 교환해야 합니다. Spring은 WebSocket 클라이언트를 통해 STOMP를 제공하고 TCP 클라이언트를 통해 STOMP를 제공합니다. 웹소켓 서버에 사용되는 스프링 프레임워크는 서버와 클라이언트 모두에 대해 WebSocket용 모듈을 제공합니다. 이 모듈은 스프링에 의해 정의된 주석으로 쉽게 구성할 수 있습니다. Spring은 또한 POPO와의 메시지 직렬화 및 serialization을 처리합니다. 슬래시 구분 경로 패턴은 웹 개발자에게 익숙하지만 메시징에서는 주제, 큐, 교환 등의 이름과 같이 구분 기호로 “.”를 사용하는 것이 일반적입니다.

응용 프로그램은 “”를 사용하여 전환할 수도 있습니다. (점) 대신 “/”(슬래시) 사용자 지정 AntPathMatcher를 구성 하 여 매핑에 @MessageMapping 구분 기호로. STOMP 브로커 릴레이는 가상 호스트 속성으로 구성할 수도 있습니다. 이 속성의 값은 모든 CONNECT 프레임의 호스트 헤더로 설정되며, 예를 들어 TCP 연결이 설정된 실제 호스트가 클라우드 기반 STOMP 서비스를 제공하는 호스트와 다른 클라우드 환경에서 유용할 수 있습니다. 위에 표시된 WebSocket 전송 구성을 사용하여 들어오는 STOMP 메시지에 대해 허용되는 최대 크기를 구성할 수도 있습니다.