public abstract class AbstractWebSocketSession<T> extends java.lang.Object implements NativeWebSocketSession
WebSocketSession.| Constructor and Description |
|---|
AbstractWebSocketSession(java.util.Map<java.lang.String,java.lang.Object> attributes)
Create a new instance and associate the given attributes with it.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
checkNativeSessionInitialized() |
void |
close()
Close the WebSocket connection with status 1000, i.e.
|
void |
close(CloseStatus status)
Close the WebSocket connection with the given close status.
|
protected abstract void |
closeInternal(CloseStatus status) |
java.util.Map<java.lang.String,java.lang.Object> |
getAttributes()
Return the map with attributes associated with the WebSocket session.
|
T |
getNativeSession()
Return the underlying native WebSocketSession.
|
<R> R |
getNativeSession(java.lang.Class<R> requiredType)
Return the underlying native WebSocketSession, if available.
|
void |
initializeNativeSession(T session) |
protected abstract void |
sendBinaryMessage(BinaryMessage message) |
void |
sendMessage(WebSocketMessage<?> message)
Send a WebSocket message: either
TextMessage or BinaryMessage. |
protected abstract void |
sendPingMessage(PingMessage message) |
protected abstract void |
sendPongMessage(PongMessage message) |
protected abstract void |
sendTextMessage(TextMessage message) |
java.lang.String |
toString() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetAcceptedProtocol, getBinaryMessageSizeLimit, getExtensions, getHandshakeHeaders, getId, getLocalAddress, getPrincipal, getRemoteAddress, getTextMessageSizeLimit, getUri, isOpen, setBinaryMessageSizeLimit, setTextMessageSizeLimitprotected static final Log logger
public AbstractWebSocketSession(@Nullable java.util.Map<java.lang.String,java.lang.Object> attributes)
attributes - attributes from the HTTP handshake to associate with the WebSocket
session; the provided attributes are copied, the original map is not used.public java.util.Map<java.lang.String,java.lang.Object> getAttributes()
WebSocketSessionOn the server side the map can be populated initially through a
HandshakeInterceptor. On the client side the map can be populated via
WebSocketClient handshake methods.
getAttributes in interface WebSocketSessionnull)public T getNativeSession()
NativeWebSocketSessiongetNativeSession in interface NativeWebSocketSession@Nullable public <R> R getNativeSession(@Nullable java.lang.Class<R> requiredType)
NativeWebSocketSessiongetNativeSession in interface NativeWebSocketSessionrequiredType - the required type of the sessionnull if not availablepublic void initializeNativeSession(T session)
protected final void checkNativeSessionInitialized()
public final void sendMessage(WebSocketMessage<?> message) throws java.io.IOException
WebSocketSessionTextMessage or BinaryMessage.sendMessage in interface WebSocketSessionjava.io.IOExceptionprotected abstract void sendTextMessage(TextMessage message) throws java.io.IOException
java.io.IOExceptionprotected abstract void sendBinaryMessage(BinaryMessage message) throws java.io.IOException
java.io.IOExceptionprotected abstract void sendPingMessage(PingMessage message) throws java.io.IOException
java.io.IOExceptionprotected abstract void sendPongMessage(PongMessage message) throws java.io.IOException
java.io.IOExceptionpublic final void close()
throws java.io.IOException
WebSocketSessionsession.close(CloseStatus.NORMAL);
close in interface java.io.Closeableclose in interface java.lang.AutoCloseableclose in interface WebSocketSessionjava.io.IOExceptionpublic final void close(CloseStatus status) throws java.io.IOException
WebSocketSessionclose in interface WebSocketSessionjava.io.IOExceptionprotected abstract void closeInternal(CloseStatus status) throws java.io.IOException
java.io.IOExceptionpublic java.lang.String toString()
toString in class java.lang.Object