List of usage examples for org.springframework.messaging.simp.stomp StompHeaderAccessor setAcceptVersion
public void setAcceptVersion(String acceptVersion)
From source file:org.springframework.messaging.simp.stomp.DefaultStompSession.java
@Override public void afterConnected(TcpConnection<byte[]> connection) { this.connection = connection; if (logger.isDebugEnabled()) { logger.debug("Connection established in session id=" + this.sessionId); }//from ww w . j a v a 2 s . c om StompHeaderAccessor accessor = createHeaderAccessor(StompCommand.CONNECT); accessor.addNativeHeaders(this.connectHeaders); accessor.setAcceptVersion("1.1,1.2"); Message<byte[]> message = createMessage(accessor, EMPTY_PAYLOAD); execute(message); }
From source file:org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler.java
/** * Open a "system" session for sending messages from parts of the application * not assoicated with a client STOMP session. *///from ww w .ja va 2s . com private void openSystemSession() { RelaySession session = new RelaySession(STOMP_RELAY_SYSTEM_SESSION_ID) { @Override protected void sendMessageToClient(Message<?> message) { // ignore, only used to send messages // TODO: ERROR frame/reconnect } }; this.relaySessions.put(STOMP_RELAY_SYSTEM_SESSION_ID, session); StompHeaderAccessor headers = StompHeaderAccessor.create(StompCommand.CONNECT); headers.setAcceptVersion("1.1,1.2"); headers.setLogin(this.systemLogin); headers.setPasscode(this.systemPasscode); headers.setHeartbeat(0, 0); // TODO if (logger.isDebugEnabled()) { logger.debug("Sending STOMP CONNECT frame to initialize \"system\" TCP connection"); } Message<?> message = MessageBuilder.withPayloadAndHeaders(new byte[0], headers).build(); session.open(message); }
From source file:org.springframework.messaging.simp.stomp.StompWebSocketHandler.java
protected void handleConnect(WebSocketSession session, Message<?> message) throws IOException { StompHeaderAccessor connectHeaders = StompHeaderAccessor.wrap(message); StompHeaderAccessor connectedHeaders = StompHeaderAccessor.create(StompCommand.CONNECTED); Set<String> acceptVersions = connectHeaders.getAcceptVersion(); if (acceptVersions.contains("1.2")) { connectedHeaders.setAcceptVersion("1.2"); } else if (acceptVersions.contains("1.1")) { connectedHeaders.setAcceptVersion("1.1"); } else if (acceptVersions.isEmpty()) { // 1.0//from w w w . ja va 2 s .c om } else { throw new StompConversionException("Unsupported version '" + acceptVersions + "'"); } connectedHeaders.setHeartbeat(0, 0); // TODO Principal principal = session.getPrincipal(); if (principal != null) { connectedHeaders.setNativeHeader(CONNECTED_USER_HEADER, principal.getName()); connectedHeaders.setNativeHeader(QUEUE_SUFFIX_HEADER, session.getId()); if (this.queueSuffixResolver != null) { String suffix = session.getId(); this.queueSuffixResolver.addQueueSuffix(principal.getName(), session.getId(), suffix); } } // TODO: security Message<?> connectedMessage = MessageBuilder.withPayloadAndHeaders(new byte[0], connectedHeaders).build(); byte[] bytes = this.stompMessageConverter.fromMessage(connectedMessage); session.sendMessage(new TextMessage(new String(bytes, Charset.forName("UTF-8")))); }