Class SimpAttributes
java.lang.Object
org.springframework.messaging.simp.SimpAttributes
A wrapper class for access to attributes associated with a SiMP session
(e.g. WebSocket session).
- Since:
- 4.1
- Author:
- Rossen Stoyanchev
-
Field Summary
-
Constructor Summary
ConstructorDescriptionSimpAttributes
(String sessionId, Map<String, Object> attributes) Constructor wrapping the given session attributes map. -
Method Summary
Modifier and TypeMethodDescriptionstatic SimpAttributes
fromMessage
(Message<?> message) Extract the SiMP session attributes from the given message and wrap them in aSimpAttributes
instance.getAttribute
(String name) Return the value for the attribute of the given name, if any.String[]
Retrieve the names of all attributes.Return an id for the associated session.Expose the object to synchronize on for the underlying session.boolean
Whether thesessionCompleted()
was already invoked.void
registerDestructionCallback
(String name, Runnable callback) Register a callback to execute on destruction of the specified attribute.void
removeAttribute
(String name) Remove the attribute of the given name, if it exists.void
Invoked when the session is completed.void
setAttribute
(String name, Object value) Set the value with the given name replacing an existing value (if any).
-
Field Details
-
SESSION_MUTEX_NAME
Key for the mutex session attribute. -
SESSION_COMPLETED_NAME
Key set after the session is completed. -
DESTRUCTION_CALLBACK_NAME_PREFIX
Prefix for the name of session attributes used to store destruction callbacks.
-
-
Constructor Details
-
SimpAttributes
Constructor wrapping the given session attributes map.- Parameters:
sessionId
- the id of the associated sessionattributes
- the attributes
-
-
Method Details
-
getAttribute
Return the value for the attribute of the given name, if any.- Parameters:
name
- the name of the attribute- Returns:
- the current attribute value, or
null
if not found
-
setAttribute
Set the value with the given name replacing an existing value (if any).- Parameters:
name
- the name of the attributevalue
- the value for the attribute
-
removeAttribute
Remove the attribute of the given name, if it exists.Also removes the registered destruction callback for the specified attribute, if any. However it does not execute the callback. It is assumed the removed object will continue to be used and destroyed independently at the appropriate time.
- Parameters:
name
- the name of the attribute
-
getAttributeNames
Retrieve the names of all attributes.- Returns:
- the attribute names as String array, never
null
-
registerDestructionCallback
Register a callback to execute on destruction of the specified attribute. The callback is executed when the session is closed.- Parameters:
name
- the name of the attribute to register the callback forcallback
- the destruction callback to be executed
-
getSessionId
Return an id for the associated session.- Returns:
- the session id as String (never
null
)
-
getSessionMutex
Expose the object to synchronize on for the underlying session.- Returns:
- the session mutex to use (never
null
)
-
isSessionCompleted
public boolean isSessionCompleted()Whether thesessionCompleted()
was already invoked. -
sessionCompleted
public void sessionCompleted()Invoked when the session is completed. Executed completion callbacks. -
fromMessage
Extract the SiMP session attributes from the given message and wrap them in aSimpAttributes
instance.- Parameters:
message
- the message to extract session attributes from
-