public abstract class AbstractSockJsSession extends Object implements SockJsSession
SockJsSession
.Constructor and Description |
---|
AbstractSockJsSession(String id,
SockJsServiceConfig config,
WebSocketHandler handler,
Map<String,Object> handshakeAttributes) |
Modifier and Type | Method and Description |
---|---|
protected void |
cancelHeartbeat() |
void |
close()
Close the WebSocket connection with status 1000, i.e.
|
void |
close(CloseStatus status)
Close the WebSocket connection with the given close status.
|
void |
delegateConnectionClosed(CloseStatus status)
Invoked in reaction to the underlying connection being closed by the remote side
(or the WebSocket container) in order to perform cleanup and notify the
WebSocketHandler . |
void |
delegateConnectionEstablished() |
void |
delegateError(Throwable ex) |
void |
delegateMessages(String[] messages) |
protected abstract void |
disconnect(CloseStatus status) |
Map<String,Object> |
getHandshakeAttributes()
Handshake request specific attributes.
|
String |
getId()
Return a unique session identifier.
|
SockJsServiceConfig |
getSockJsServiceConfig() |
long |
getTimeSinceLastActive()
Return the time (in ms) since the session was last active, or otherwise
if the session is new, then the time since the session was created.
|
abstract boolean |
isActive()
Polling and Streaming sessions periodically close the current HTTP request and
wait for the next request to come through.
|
boolean |
isClosed() |
boolean |
isNew() |
boolean |
isOpen()
Return whether the connection is still open.
|
protected void |
scheduleHeartbeat() |
void |
sendHeartbeat() |
void |
sendMessage(WebSocketMessage<?> message)
Send a WebSocket message either
TextMessage or
BinaryMessage . |
protected abstract void |
sendMessageInternal(String message) |
String |
toString() |
void |
tryCloseWithSockJsTransportError(Throwable ex,
CloseStatus closeStatus)
Close due to error arising from SockJS transport handling.
|
protected void |
updateLastActiveTime()
Should be invoked whenever the session becomes inactive.
|
protected void |
writeFrame(SockJsFrame frame)
For internal use within a TransportHandler and the (TransportHandler-specific)
session class.
|
protected abstract void |
writeFrameInternal(SockJsFrame frame) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getAcceptedProtocol, getExtensions, getHandshakeHeaders, getLocalAddress, getPrincipal, getRemoteAddress, getUri
protected final Log logger
public AbstractSockJsSession(String id, SockJsServiceConfig config, WebSocketHandler handler, Map<String,Object> handshakeAttributes)
id
- the session IDconfig
- SockJS service configuration optionshandler
- the recipient of SockJS messagespublic String getId()
WebSocketSession
getId
in interface WebSocketSession
public SockJsServiceConfig getSockJsServiceConfig()
public Map<String,Object> getHandshakeAttributes()
WebSocketSession
HandshakeInterceptor
.getHandshakeAttributes
in interface WebSocketSession
public boolean isNew()
public boolean isOpen()
WebSocketSession
isOpen
in interface WebSocketSession
public boolean isClosed()
public abstract boolean isActive()
public long getTimeSinceLastActive()
SockJsSession
getTimeSinceLastActive
in interface SockJsSession
protected void updateLastActiveTime()
public void delegateConnectionEstablished() throws Exception
Exception
public void delegateMessages(String[] messages) throws SockJsMessageDeliveryException
SockJsMessageDeliveryException
public final void delegateConnectionClosed(CloseStatus status) throws Exception
WebSocketHandler
. This is in contrast to close()
that pro-actively
closes the connection.Exception
public final void sendMessage(WebSocketMessage<?> message) throws IOException
WebSocketSession
TextMessage
or
BinaryMessage
.sendMessage
in interface WebSocketSession
IOException
protected abstract void sendMessageInternal(String message) throws IOException
IOException
public final void close() throws IOException
session.close(CloseStatus.NORMAL);
Performs cleanup and notifies the WebSocketHandler
.
close
in interface WebSocketSession
IOException
public final void close(CloseStatus status) throws IOException
Performs cleanup and notifies the WebSocketHandler
.
close
in interface WebSocketSession
IOException
protected abstract void disconnect(CloseStatus status) throws IOException
IOException
public void tryCloseWithSockJsTransportError(Throwable ex, CloseStatus closeStatus)
protected void writeFrame(SockJsFrame frame) throws SockJsTransportFailureException
SockJsTransportFailureException
protected abstract void writeFrameInternal(SockJsFrame frame) throws IOException
IOException
public void sendHeartbeat() throws SockJsTransportFailureException
SockJsTransportFailureException
protected void scheduleHeartbeat()
protected void cancelHeartbeat()