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

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

Introduction

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

Prototype

public void setSessionId(@Nullable String sessionId) 

Source Link

Usage

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

private MessageHeaders createHeaders(@Nullable String sessionId, String subscriptionId,
        MethodParameter returnType) {/*w w w . j  a  v a 2 s  . co  m*/
    SimpMessageHeaderAccessor accessor = SimpMessageHeaderAccessor.create(SimpMessageType.MESSAGE);
    if (getHeaderInitializer() != null) {
        getHeaderInitializer().initHeaders(accessor);
    }
    if (sessionId != null) {
        accessor.setSessionId(sessionId);
    }
    accessor.setSubscriptionId(subscriptionId);
    accessor.setHeader(SimpMessagingTemplate.CONVERSION_HINT_HEADER, returnType);
    accessor.setLeaveMutable(true);
    return accessor.getMessageHeaders();
}

From source file:org.springframework.messaging.simp.handler.SimpleBrokerMessageHandler.java

protected void sendMessageToSubscribers(String destination, Message<?> message) {
    MultiValueMap<String, String> subscriptions = this.subscriptionRegistry.findSubscriptions(message);
    for (String sessionId : subscriptions.keySet()) {
        for (String subscriptionId : subscriptions.get(sessionId)) {

            SimpMessageHeaderAccessor headers = SimpMessageHeaderAccessor.wrap(message);
            headers.setSessionId(sessionId);
            headers.setSubscriptionId(subscriptionId);

            Object payload = message.getPayload();
            Message<?> clientMessage = MessageBuilder.withPayloadAndHeaders(payload, headers).build();
            try {
                this.messageChannel.send(clientMessage);
            } catch (Throwable ex) {
                logger.error("Failed to send message to destination=" + destination + ", sessionId=" + sessionId
                        + ", subscriptionId=" + subscriptionId, ex);
            }/*  w  w  w. ja  v a  2s .  c om*/
        }
    }
}