Example usage for org.springframework.messaging.simp SimpMessageHeaderAccessor getDestination

List of usage examples for org.springframework.messaging.simp SimpMessageHeaderAccessor getDestination

Introduction

In this page you can find the example usage for org.springframework.messaging.simp SimpMessageHeaderAccessor getDestination.

Prototype

@Nullable
    public static String getDestination(Map<String, Object> headers) 

Source Link

Usage

From source file:org.springframework.messaging.simp.annotation.support.SimpAnnotationMethodMessageHandler.java

@Override
@Nullable
protected String getDestination(Message<?> message) {
    return SimpMessageHeaderAccessor.getDestination(message.getHeaders());
}

From source file:org.springframework.messaging.simp.annotation.support.SubscriptionMethodReturnValueHandler.java

@Override
public void handleReturnValue(@Nullable Object returnValue, MethodParameter returnType, Message<?> message)
        throws Exception {

    if (returnValue == null) {
        return;/*from  w ww.j ava 2  s .c  om*/
    }

    MessageHeaders headers = message.getHeaders();
    String sessionId = SimpMessageHeaderAccessor.getSessionId(headers);
    String subscriptionId = SimpMessageHeaderAccessor.getSubscriptionId(headers);
    String destination = SimpMessageHeaderAccessor.getDestination(headers);

    if (subscriptionId == null) {
        throw new IllegalStateException(
                "No simpSubscriptionId in " + message + " returned by: " + returnType.getMethod());
    }
    if (destination == null) {
        throw new IllegalStateException(
                "No simpDestination in " + message + " returned by: " + returnType.getMethod());
    }

    if (logger.isDebugEnabled()) {
        logger.debug("Reply to @SubscribeMapping: " + returnValue);
    }
    MessageHeaders headersToSend = createHeaders(sessionId, subscriptionId, returnType);
    this.messagingTemplate.convertAndSend(destination, returnValue, headersToSend);
}

From source file:org.springframework.messaging.simp.broker.AbstractSubscriptionRegistry.java

@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);
    }//  ww w .j a va2 s  .c  om

    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);
}

From source file:org.springframework.messaging.simp.broker.AbstractSubscriptionRegistry.java

@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);
    }//from w  w  w  . j  ava  2 s .co  m

    String destination = SimpMessageHeaderAccessor.getDestination(headers);
    if (destination == null) {
        if (logger.isErrorEnabled()) {
            logger.error("No destination in " + message);
        }
        return EMPTY_MAP;
    }

    return findSubscriptionsInternal(destination, message);
}

From source file:org.springframework.messaging.simp.user.DefaultUserDestinationResolver.java

@Nullable
private ParseResult parse(Message<?> message) {
    MessageHeaders headers = message.getHeaders();
    String sourceDestination = SimpMessageHeaderAccessor.getDestination(headers);
    if (sourceDestination == null || !checkDestination(sourceDestination, this.prefix)) {
        return null;
    }//w  w w . j a  v a  2s. c  o  m
    SimpMessageType messageType = SimpMessageHeaderAccessor.getMessageType(headers);
    if (messageType != null) {
        switch (messageType) {
        case SUBSCRIBE:
        case UNSUBSCRIBE:
            return parseSubscriptionMessage(message, sourceDestination);
        case MESSAGE:
            return parseMessage(headers, sourceDestination);
        }
    }
    return null;
}