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

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

Introduction

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

Prototype

public void setSubscriptionId(@Nullable String subscriptionId) 

Source Link

Usage

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

private MessageHeaders createHeaders(@Nullable String sessionId, String subscriptionId,
        MethodParameter returnType) {//from w w w . j av a2 s  .c om
    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);
            }/*from   ww  w  .  java2s  .  c o  m*/
        }
    }
}