Class SimpMessageHeaderAccessor
- java.lang.Object
- org.springframework.messaging.support.MessageHeaderAccessor
- org.springframework.messaging.support.NativeMessageHeaderAccessor
- org.springframework.messaging.simp.SimpMessageHeaderAccessor
- Direct Known Subclasses:
StompHeaderAccessor
public class SimpMessageHeaderAccessor extends NativeMessageHeaderAccessor
A base class for working with message headers in simple messaging protocols that support basic messaging patterns. Provides uniform access to specific values common across protocols such as a destination, message type (e.g. publish, subscribe, etc), session id, and others.Use one of the static factory method in this class, then call getters and setters, and at the end if necessary call
MessageHeaderAccessor.toMap()to obtain the updated headers.- Since:
- 4.0
- Author:
- Rossen Stoyanchev
Field Summary
Fields Modifier and Type Field Description static StringCONNECT_MESSAGE_HEADERstatic StringDESTINATION_HEADERstatic StringDISCONNECT_MESSAGE_HEADERstatic StringHEART_BEAT_HEADERstatic StringIGNORE_ERRORA header that indicates to the broker that the sender will ignore errors.static StringMESSAGE_TYPE_HEADERstatic StringORIGINAL_DESTINATIONA header for internal use with "user" destinations where we need to restore the destination prior to sending messages to clients.static StringSESSION_ATTRIBUTESstatic StringSESSION_ID_HEADERstatic StringSUBSCRIPTION_ID_HEADERstatic StringUSER_HEADERFields inherited from class org.springframework.messaging.support.NativeMessageHeaderAccessor
NATIVE_HEADERS
Fields inherited from class org.springframework.messaging.support.MessageHeaderAccessor
DEFAULT_CHARSET
Constructor Summary
Constructors Modifier Constructor Description protectedSimpMessageHeaderAccessor(Message<?> message)A constructor for accessing and modifying existing message headers.protectedSimpMessageHeaderAccessor(SimpMessageType messageType, Map<String,List<String>> externalSourceHeaders)A constructor for creating new message headers.
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static SimpMessageHeaderAccessorcreate()Create an instance withSimpMessageTypeMESSAGE.static SimpMessageHeaderAccessorcreate(SimpMessageType messageType)Create an instance with the givenSimpMessageType.protected MessageHeaderAccessorcreateAccessor(Message<?> message)Build a 'nested' accessor for the given message.StringgetDestination()static StringgetDestination(Map<String,Object> headers)StringgetDetailedLogMessage(Object payload)Return a more detailed message for logging purposes.static long[]getHeartbeat(Map<String,Object> headers)SimpMessageTypegetMessageType()static SimpMessageTypegetMessageType(Map<String,Object> headers)Map<String,Object>getSessionAttributes()Return the attributes associated with the current session.static Map<String,Object>getSessionAttributes(Map<String,Object> headers)StringgetSessionId()static StringgetSessionId(Map<String,Object> headers)StringgetShortLogMessage(Object payload)Return a concise message for logging purposes.StringgetSubscriptionId()static StringgetSubscriptionId(Map<String,Object> headers)PrincipalgetUser()Return the user associated with the current session.static PrincipalgetUser(Map<String,Object> headers)voidsetDestination(String destination)voidsetMessageTypeIfNotSet(SimpMessageType messageType)voidsetSessionAttributes(Map<String,Object> attributes)A static alternative for access to the session attributes header.voidsetSessionId(String sessionId)voidsetSubscriptionId(String subscriptionId)voidsetUser(Principal principal)static SimpMessageHeaderAccessorwrap(Message<?> message)Create an instance from the payload and headers of the given Message.Methods inherited from class org.springframework.messaging.support.NativeMessageHeaderAccessor
addNativeHeader, addNativeHeaders, containsNativeHeader, getFirstNativeHeader, getFirstNativeHeader, getNativeHeader, removeNativeHeader, setImmutable, setNativeHeader, toNativeHeaderMap
Methods inherited from class org.springframework.messaging.support.MessageHeaderAccessor
copyHeaders, copyHeadersIfAbsent, getAccessor, getAccessor, getContentType, getDetailedPayloadLogMessage, getErrorChannel, getHeader, getId, getMessageHeaders, getMutableAccessor, getReplyChannel, getShortPayloadLogMessage, getTimestamp, isModified, isMutable, isReadableContentType, isReadOnly, removeHeader, removeHeaders, setContentType, setErrorChannel, setErrorChannelName, setHeader, setHeaderIfAbsent, setLeaveMutable, setModified, setReplyChannel, setReplyChannelName, toMap, toMessageHeaders, toString, verifyType
Field Detail
DESTINATION_HEADER
public static final String DESTINATION_HEADER
- See Also:
- Constant Field Values
MESSAGE_TYPE_HEADER
public static final String MESSAGE_TYPE_HEADER
- See Also:
- Constant Field Values
SESSION_ID_HEADER
public static final String SESSION_ID_HEADER
- See Also:
- Constant Field Values
SESSION_ATTRIBUTES
public static final String SESSION_ATTRIBUTES
- See Also:
- Constant Field Values
SUBSCRIPTION_ID_HEADER
public static final String SUBSCRIPTION_ID_HEADER
- See Also:
- Constant Field Values
USER_HEADER
public static final String USER_HEADER
- See Also:
- Constant Field Values
CONNECT_MESSAGE_HEADER
public static final String CONNECT_MESSAGE_HEADER
- See Also:
- Constant Field Values
DISCONNECT_MESSAGE_HEADER
public static final String DISCONNECT_MESSAGE_HEADER
- See Also:
- Constant Field Values
HEART_BEAT_HEADER
public static final String HEART_BEAT_HEADER
- See Also:
- Constant Field Values
ORIGINAL_DESTINATION
public static final String ORIGINAL_DESTINATION
A header for internal use with "user" destinations where we need to restore the destination prior to sending messages to clients.- See Also:
- Constant Field Values
IGNORE_ERROR
public static final String IGNORE_ERROR
A header that indicates to the broker that the sender will ignore errors. The header is simply checked for presence or absence.- See Also:
- Constant Field Values
Constructor Detail
SimpMessageHeaderAccessor
protected SimpMessageHeaderAccessor(SimpMessageType messageType, Map<String,List<String>> externalSourceHeaders)
A constructor for creating new message headers. This constructor is protected. See factory methods in this and sub-classes.
SimpMessageHeaderAccessor
protected SimpMessageHeaderAccessor(Message<?> message)
A constructor for accessing and modifying existing message headers. This constructor is protected. See factory methods in this and sub-classes.
Method Detail
createAccessor
protected MessageHeaderAccessor createAccessor(Message<?> message)
Description copied from class:MessageHeaderAccessorBuild a 'nested' accessor for the given message.- Overrides:
createAccessorin classMessageHeaderAccessor- Parameters:
message- the message to build a new accessor for- Returns:
- the nested accessor (typically a specific subclass)
setMessageTypeIfNotSet
public void setMessageTypeIfNotSet(SimpMessageType messageType)
getMessageType
public SimpMessageType getMessageType()
setDestination
public void setDestination(String destination)
getDestination
public String getDestination()
setSubscriptionId
public void setSubscriptionId(String subscriptionId)
getSubscriptionId
public String getSubscriptionId()
setSessionId
public void setSessionId(String sessionId)
getSessionId
public String getSessionId()
- Returns:
- the id of the current session
setSessionAttributes
public void setSessionAttributes(Map<String,Object> attributes)
A static alternative for access to the session attributes header.
getSessionAttributes
public Map<String,Object> getSessionAttributes()
Return the attributes associated with the current session.
getShortLogMessage
public String getShortLogMessage(Object payload)
Description copied from class:MessageHeaderAccessorReturn a concise message for logging purposes.- Overrides:
getShortLogMessagein classMessageHeaderAccessor- Parameters:
payload- the payload that corresponds to the headers.- Returns:
- the message
getDetailedLogMessage
public String getDetailedLogMessage(Object payload)
Description copied from class:MessageHeaderAccessorReturn a more detailed message for logging purposes.- Overrides:
getDetailedLogMessagein classMessageHeaderAccessor- Parameters:
payload- the payload that corresponds to the headers.- Returns:
- the message
create
public static SimpMessageHeaderAccessor create()
Create an instance withSimpMessageTypeMESSAGE.
create
public static SimpMessageHeaderAccessor create(SimpMessageType messageType)
Create an instance with the givenSimpMessageType.
wrap
public static SimpMessageHeaderAccessor wrap(Message<?> message)
Create an instance from the payload and headers of the given Message.
getMessageType
public static SimpMessageType getMessageType(Map<String,Object> headers)
getDestination
public static String getDestination(Map<String,Object> headers)
getSubscriptionId
public static String getSubscriptionId(Map<String,Object> headers)
getSessionId
public static String getSessionId(Map<String,Object> headers)
getSessionAttributes
public static Map<String,Object> getSessionAttributes(Map<String,Object> headers)
getHeartbeat
public static long[] getHeartbeat(Map<String,Object> headers)