Package org.springframework.web.socket
Interface WebSocketSession
- All Superinterfaces:
AutoCloseable
,Closeable
- All Known Subinterfaces:
NativeWebSocketSession
,SockJsSession
- All Known Implementing Classes:
AbstractClientSockJsSession
,AbstractHttpSockJsSession
,AbstractSockJsSession
,AbstractWebSocketSession
,ConcurrentWebSocketSessionDecorator
,JettyWebSocketSession
,PollingSockJsSession
,StandardWebSocketSession
,StreamingSockJsSession
,WebSocketClientSockJsSession
,WebSocketServerSockJsSession
,WebSocketSessionDecorator
,XhrClientSockJsSession
A WebSocket session abstraction. Allows sending messages over a WebSocket
connection and closing it.
- Since:
- 4.0
- Author:
- Rossen Stoyanchev
-
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
Close the WebSocket connection with status 1000, i.e.void
close
(CloseStatus status) Close the WebSocket connection with the given close status.Return the negotiated sub-protocol.Return the map with attributes associated with the WebSocket session.int
Get the configured maximum size for an incoming binary message.Determine the negotiated extensions.Return the headers used in the handshake request (nevernull
).getId()
Return a unique session identifier.Return the address on which the request was received.Return aPrincipal
instance containing the name of the authenticated user.Return the address of the remote client.int
Get the configured maximum size for an incoming text message.getUri()
Return the URI used to open the WebSocket connection.boolean
isOpen()
Whether the underlying connection is open.void
sendMessage
(WebSocketMessage<?> message) Send a WebSocket message: eitherTextMessage
orBinaryMessage
.void
setBinaryMessageSizeLimit
(int messageSizeLimit) Configure the maximum size for an incoming binary message.void
setTextMessageSizeLimit
(int messageSizeLimit) Configure the maximum size for an incoming text message.
-
Method Details
-
getId
String getId()Return a unique session identifier. -
getUri
Return the URI used to open the WebSocket connection. -
getHandshakeHeaders
HttpHeaders getHandshakeHeaders()Return the headers used in the handshake request (nevernull
). -
getAttributes
Return the map with attributes associated with the WebSocket session.On the server side the map can be populated initially through a
HandshakeInterceptor
. On the client side the map can be populated viaWebSocketClient
handshake methods.- Returns:
- a Map with the session attributes (never
null
)
-
getPrincipal
Return aPrincipal
instance containing the name of the authenticated user.If the user has not been authenticated, the method returns
null
. -
getLocalAddress
Return the address on which the request was received. -
getRemoteAddress
Return the address of the remote client. -
getAcceptedProtocol
Return the negotiated sub-protocol.- Returns:
- the protocol identifier, or
null
if no protocol was specified or negotiated successfully
-
setTextMessageSizeLimit
void setTextMessageSizeLimit(int messageSizeLimit) Configure the maximum size for an incoming text message. -
getTextMessageSizeLimit
int getTextMessageSizeLimit()Get the configured maximum size for an incoming text message. -
setBinaryMessageSizeLimit
void setBinaryMessageSizeLimit(int messageSizeLimit) Configure the maximum size for an incoming binary message. -
getBinaryMessageSizeLimit
int getBinaryMessageSizeLimit()Get the configured maximum size for an incoming binary message. -
getExtensions
List<WebSocketExtension> getExtensions()Determine the negotiated extensions.- Returns:
- the list of extensions, or an empty list if no extension was specified or negotiated successfully
-
sendMessage
Send a WebSocket message: eitherTextMessage
orBinaryMessage
.Note: The underlying standard WebSocket session (JSR-356) does not allow concurrent sending. Therefore sending must be synchronized. To ensure that, one option is to wrap the
WebSocketSession
with theConcurrentWebSocketSessionDecorator
.- Throws:
IOException
- See Also:
-
isOpen
boolean isOpen()Whether the underlying connection is open. -
close
Close the WebSocket connection with status 1000, i.e. equivalent to:session.close(CloseStatus.NORMAL);
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Throws:
IOException
-
close
Close the WebSocket connection with the given close status.- Throws:
IOException
-