public TextMessage build() { StringBuilder sb = new StringBuilder(this.command.name()).append("\n"); for (String line : this.headerLines) { sb.append(line).append("\n"); } sb.append("\n"); if (this.body != null) { sb.append(this.body); } sb.append("\u0000"); return new TextMessage(sb.toString()); }
@Override public String getDetailedLogMessage(@Nullable Object payload) { if (isHeartbeat()) { String sessionId = getSessionId(); return "heart-beat" + (sessionId != null ? " in session " + sessionId : ""); } StompCommand command = getCommand(); if (command == null) { return super.getDetailedLogMessage(payload); } StringBuilder sb = new StringBuilder(); sb.append(command.name()).append(" "); Map<String, List<String>> nativeHeaders = getNativeHeaders(); if (nativeHeaders != null) { sb.append(nativeHeaders); } sb.append(appendSession()); if (getUser() != null) { sb.append(", user=").append(getUser().getName()); } if (payload != null && command.isBodyAllowed()) { sb.append(appendPayload(payload)); } return sb.toString(); }
@Override public String getDetailedLogMessage(@Nullable Object payload) { if (isHeartbeat()) { String sessionId = getSessionId(); return "heart-beat" + (sessionId != null ? " in session " + sessionId : ""); } StompCommand command = getCommand(); if (command == null) { return super.getDetailedLogMessage(payload); } StringBuilder sb = new StringBuilder(); sb.append(command.name()).append(" "); Map<String, List<String>> nativeHeaders = getNativeHeaders(); if (nativeHeaders != null) { sb.append(nativeHeaders); } sb.append(appendSession()); if (getUser() != null) { sb.append(", user=").append(getUser().getName()); } if (payload != null && command.isBodyAllowed()) { sb.append(appendPayload(payload)); } return sb.toString(); }
@Test public void sendMessageToController() throws Exception { StompHeaderAccessor headers = StompHeaderAccessor.create(StompCommand.CONNECT); this.webSocketOutputChannel.send(MessageBuilder.withPayload(new byte[0]).setHeaders(headers).build()); Message<?> receive = this.webSocketEvents.receive(20000); assertNotNull(receive); Object event = receive.getPayload(); assertThat(event, instanceOf(SessionConnectedEvent.class)); Message<?> connectedMessage = ((SessionConnectedEvent) event).getMessage(); headers = StompHeaderAccessor.wrap(connectedMessage); assertEquals(StompCommand.CONNECTED, headers.getCommand()); headers = StompHeaderAccessor.create(StompCommand.SEND); headers.setSubscriptionId("sub1"); headers.setDestination("/app/simple"); Message<String> message = MessageBuilder.withPayload("foo").setHeaders(headers).build(); this.webSocketOutputChannel.send(message); SimpleController controller = this.serverContext.getBean(SimpleController.class); assertTrue(controller.latch.await(20, TimeUnit.SECONDS)); assertEquals(StompCommand.SEND.name(), controller.stompCommand); }
@Override public String getDetailedLogMessage(@Nullable Object payload) { if (isHeartbeat()) { String sessionId = getSessionId(); return "heart-beat" + (sessionId != null ? " in session " + sessionId : ""); } StompCommand command = getCommand(); if (command == null) { return super.getDetailedLogMessage(payload); } StringBuilder sb = new StringBuilder(); sb.append(command.name()).append(" "); Map<String, List<String>> nativeHeaders = getNativeHeaders(); if (nativeHeaders != null) { sb.append(nativeHeaders); } sb.append(appendSession()); if (getUser() != null) { sb.append(", user=").append(getUser().getName()); } if (payload != null && command.isBodyAllowed()) { sb.append(appendPayload(payload)); } return sb.toString(); }
@Override public String getDetailedLogMessage(@Nullable Object payload) { if (isHeartbeat()) { String sessionId = getSessionId(); return "heart-beat" + (sessionId != null ? " in session " + sessionId : ""); } StompCommand command = getCommand(); if (command == null) { return super.getDetailedLogMessage(payload); } StringBuilder sb = new StringBuilder(); sb.append(command.name()).append(" "); Map<String, List<String>> nativeHeaders = getNativeHeaders(); if (nativeHeaders != null) { sb.append(nativeHeaders); } sb.append(appendSession()); if (getUser() != null) { sb.append(", user=").append(getUser().getName()); } if (payload != null && command.isBodyAllowed()) { sb.append(appendPayload(payload)); } return sb.toString(); }