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

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

Introduction

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

Prototype

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

Source Link

Usage

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;// w w w  .j a  va 2  s.c o m
    }

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

    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 void unregisterSubscription(Message<?> message) {
    MessageHeaders headers = message.getHeaders();

    SimpMessageType messageType = SimpMessageHeaderAccessor.getMessageType(headers);
    if (!SimpMessageType.UNSUBSCRIBE.equals(messageType)) {
        throw new IllegalArgumentException("Expected UNSUBSCRIBE: " + message);
    }//from w w  w .j a  v  a2  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 " + message);
        }
        return;
    }

    removeSubscriptionInternal(sessionId, subscriptionId, message);
}