private StringBuilder getBaseLogMessage() { StringBuilder sb = new StringBuilder(); SimpMessageType messageType = getMessageType(); sb.append(messageType != null ? messageType.name() : SimpMessageType.OTHER); String destination = getDestination(); if (destination != null) { sb.append(" destination=").append(destination); } String subscriptionId = getSubscriptionId(); if (subscriptionId != null) { sb.append(" subscriptionId=").append(subscriptionId); } sb.append(" session=").append(getSessionId()); Principal user = getUser(); if (user != null) { sb.append(" user=").append(user.getName()); } return sb; }
SimpMessageType type = SimpMessageType.valueOf(messageType); if (SimpMessageType.MESSAGE == type) { factoryName = "createMessageMatcher";
@Override @Nullable public SimpMessageTypeMessageCondition getMatchingCondition(Message<?> message) { SimpMessageType actual = SimpMessageHeaderAccessor.getMessageType(message.getHeaders()); return (actual != null && actual.equals(this.messageType) ? this : null); }
private StringBuilder getBaseLogMessage() { StringBuilder sb = new StringBuilder(); SimpMessageType messageType = getMessageType(); sb.append(messageType != null ? messageType.name() : SimpMessageType.OTHER); String destination = getDestination(); if (destination != null) { sb.append(" destination=").append(destination); } String subscriptionId = getSubscriptionId(); if (subscriptionId != null) { sb.append(" subscriptionId=").append(subscriptionId); } sb.append(" session=").append(getSessionId()); Principal user = getUser(); if (user != null) { sb.append(" user=").append(user.getName()); } return sb; }
SimpMessageType type = SimpMessageType.valueOf(messageType); if (SimpMessageType.MESSAGE == type) { factoryName = "createMessageMatcher";
@Override public void afterSendCompletion( Message<?> message, MessageChannel channel, boolean sent, @Nullable Exception ex) { if (!sent) { SimpMessageType messageType = SimpMessageHeaderAccessor.getMessageType(message.getHeaders()); if (SimpMessageType.DISCONNECT.equals(messageType)) { logger.debug("Detected unsent DISCONNECT message. Processing anyway."); handleMessage(message); } } } }
private StringBuilder getBaseLogMessage() { StringBuilder sb = new StringBuilder(); SimpMessageType messageType = getMessageType(); sb.append(messageType != null ? messageType.name() : SimpMessageType.OTHER); String destination = getDestination(); if (destination != null) { sb.append(" destination=").append(destination); } String subscriptionId = getSubscriptionId(); if (subscriptionId != null) { sb.append(" subscriptionId=").append(subscriptionId); } sb.append(" session=").append(getSessionId()); Principal user = getUser(); if (user != null) { sb.append(" user=").append(user.getName()); } return sb; }
SimpMessageType type = SimpMessageType.valueOf(messageType); if (SimpMessageType.MESSAGE == type) { factoryName = "createMessageMatcher";
@Override public final MultiValueMap<String, String> findSubscriptions(Message<?> message) { MessageHeaders headers = message.getHeaders(); SimpMessageType type = SimpMessageHeaderAccessor.getMessageType(headers); if (!SimpMessageType.MESSAGE.equals(type)) { throw new IllegalArgumentException("Unexpected message type: " + type); } String destination = SimpMessageHeaderAccessor.getDestination(headers); if (destination == null) { if (logger.isErrorEnabled()) { logger.error("No destination in " + message); } return EMPTY_MAP; } return findSubscriptionsInternal(destination, message); }
private StringBuilder getBaseLogMessage() { StringBuilder sb = new StringBuilder(); SimpMessageType messageType = getMessageType(); sb.append(messageType != null ? messageType.name() : SimpMessageType.OTHER); String destination = getDestination(); if (destination != null) { sb.append(" destination=").append(destination); } String subscriptionId = getSubscriptionId(); if (subscriptionId != null) { sb.append(" subscriptionId=").append(subscriptionId); } sb.append(" session=").append(getSessionId()); Principal user = getUser(); if (user != null) { sb.append(" user=").append(user.getName()); } return sb; }
@Override public final void unregisterSubscription(Message<?> message) { MessageHeaders headers = message.getHeaders(); SimpMessageType messageType = SimpMessageHeaderAccessor.getMessageType(headers); if (!SimpMessageType.UNSUBSCRIBE.equals(messageType)) { throw new IllegalArgumentException("Expected UNSUBSCRIBE: " + message); } String sessionId = SimpMessageHeaderAccessor.getSessionId(headers); if (sessionId == null) { if (logger.isErrorEnabled()) { logger.error("No sessionId in " + message); } return; } String subscriptionId = SimpMessageHeaderAccessor.getSubscriptionId(headers); if (subscriptionId == null) { if (logger.isErrorEnabled()) { logger.error("No subscriptionId " + message); } return; } removeSubscriptionInternal(sessionId, subscriptionId, message); }
DataOutputStream output = new DataOutputStream(baos); if (SimpMessageType.HEARTBEAT.equals(SimpMessageHeaderAccessor.getMessageType(headers))) { logger.trace("Encoding heartbeat"); output.write(StompDecoder.HEARTBEAT_PAYLOAD);
@Override public final void registerSubscription(Message<?> message) { MessageHeaders headers = message.getHeaders(); SimpMessageType messageType = SimpMessageHeaderAccessor.getMessageType(headers); if (!SimpMessageType.SUBSCRIBE.equals(messageType)) { throw new IllegalArgumentException("Expected SUBSCRIBE: " + message); } String sessionId = SimpMessageHeaderAccessor.getSessionId(headers); if (sessionId == null) { if (logger.isErrorEnabled()) { logger.error("No sessionId in " + message); } return; } String subscriptionId = SimpMessageHeaderAccessor.getSubscriptionId(headers); if (subscriptionId == null) { if (logger.isErrorEnabled()) { logger.error("No subscriptionId in " + message); } return; } String destination = SimpMessageHeaderAccessor.getDestination(headers); if (destination == null) { if (logger.isErrorEnabled()) { logger.error("No destination in " + message); } return; } addSubscriptionInternal(sessionId, subscriptionId, destination, message); }
private void trySetStompHeaderForSubscriptionId() { String subscriptionId = getSubscriptionId(); if (subscriptionId != null) { StompCommand command = getCommand(); if (command != null && StompCommand.MESSAGE.equals(command)) { setNativeHeader(STOMP_SUBSCRIPTION_HEADER, subscriptionId); } else { SimpMessageType messageType = getMessageType(); if (SimpMessageType.SUBSCRIBE.equals(messageType) || SimpMessageType.UNSUBSCRIBE.equals(messageType)) { setNativeHeader(STOMP_ID_HEADER, subscriptionId); } } } }
public MessageExchangeBuilder andExpectMessage(String sessionId, String subscriptionId) { Assert.state(SimpMessageType.MESSAGE.equals(this.headers.getMessageType()), "MESSAGE type expected"); String destination = this.headers.getDestination(); Object payload = this.message.getPayload(); this.expected.add(new StompMessageFrameMessageMatcher(sessionId, subscriptionId, destination, payload)); return this; }
StompHeaderAccessor stompAccessor = StompHeaderAccessor.wrap(message); SimpMessageType messageType = SimpMessageHeaderAccessor.getMessageType(message.getHeaders()); if (SimpMessageType.CONNECT_ACK.equals(messageType)) { stompAccessor = convertConnectAcktoStompConnected(stompAccessor); else if (SimpMessageType.DISCONNECT_ACK.equals(messageType)) { String receipt = getDisconnectReceipt(stompAccessor); if (receipt != null) { else if (SimpMessageType.HEARTBEAT.equals(messageType)) { stompAccessor = StompHeaderAccessor.createForHeartbeat();
if (SimpMessageType.MESSAGE.equals(messageType)) { logMessage(message); sendMessageToSubscribers(destination, message); else if (SimpMessageType.CONNECT.equals(messageType)) { logMessage(message); if (sessionId != null) { else if (SimpMessageType.DISCONNECT.equals(messageType)) { logMessage(message); if (sessionId != null) { else if (SimpMessageType.SUBSCRIBE.equals(messageType)) { logMessage(message); this.subscriptionRegistry.registerSubscription(message); else if (SimpMessageType.UNSUBSCRIBE.equals(messageType)) { logMessage(message); this.subscriptionRegistry.unregisterSubscription(message);
if (!SimpMessageType.MESSAGE.equals(stompAccessor.getMessageType())) { if (logger.isErrorEnabled()) { logger.error("Only STOMP SEND supported from within the server side. Ignoring " + message);
@Override @Nullable public SimpMessageTypeMessageCondition getMatchingCondition(Message<?> message) { SimpMessageType actual = SimpMessageHeaderAccessor.getMessageType(message.getHeaders()); return (actual != null && actual.equals(this.messageType) ? this : null); }