public abstract class AbstractHttpSockJsSession extends AbstractSockJsSession
DISCONNECTED_CLIENT_LOG_CATEGORY, disconnectedClientLogger, logger, responseLock| Constructor and Description |
|---|
AbstractHttpSockJsSession(java.lang.String id,
SockJsServiceConfig config,
WebSocketHandler wsHandler,
java.util.Map<java.lang.String,java.lang.Object> attributes) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
disconnect(CloseStatus status)
Actually close the underlying WebSocket session or in the case of HTTP
transports complete the underlying request.
|
protected abstract void |
flushCache()
Called when the connection is active and ready to write to the response.
|
java.lang.String |
getAcceptedProtocol()
Return the selected sub-protocol to use.
|
int |
getBinaryMessageSizeLimit()
Get the configured maximum size for an incoming binary message.
|
java.util.List<WebSocketExtension> |
getExtensions()
Determine the negotiated extensions.
|
HttpHeaders |
getHandshakeHeaders()
Return the headers used in the handshake request (never
null). |
java.net.InetSocketAddress |
getLocalAddress()
Return the address on which the request was received.
|
protected java.util.Queue<java.lang.String> |
getMessageCache()
Return the SockJS buffer for messages stored transparently between polling
requests.
|
java.security.Principal |
getPrincipal()
Return a
Principal instance containing the name
of the authenticated user. |
java.net.InetSocketAddress |
getRemoteAddress()
Return the address of the remote client.
|
int |
getTextMessageSizeLimit()
Get the configured maximum size for an incoming text message.
|
java.net.URI |
getUri()
Return the URI used to open the WebSocket connection.
|
void |
handleInitialRequest(ServerHttpRequest request,
ServerHttpResponse response,
SockJsFrameFormat frameFormat)
Handle the first request for receiving messages on a SockJS HTTP transport
based session.
|
protected abstract void |
handleRequestInternal(ServerHttpRequest request,
ServerHttpResponse response,
boolean initialRequest)
Invoked when a SockJS transport request is received.
|
void |
handleSuccessiveRequest(ServerHttpRequest request,
ServerHttpResponse response,
SockJsFrameFormat frameFormat)
Handle all requests, except the first one, to receive messages on a SockJS
HTTP transport based session.
|
boolean |
isActive()
Polling and Streaming sessions periodically close the current HTTP request and
wait for the next request to come through.
|
protected void |
resetRequest() |
protected void |
sendMessageInternal(java.lang.String message) |
void |
setAcceptedProtocol(java.lang.String protocol)
Unlike WebSocket where sub-protocol negotiation is part of the initial
handshake, in HTTP transports the same negotiation must be emulated and
the selected protocol set through this setter.
|
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.
|
protected void |
writeFrameInternal(SockJsFrame frame) |
cancelHeartbeat, close, close, delegateConnectionClosed, delegateConnectionEstablished, delegateError, delegateMessages, disableHeartbeat, getAttributes, getId, getMessageCodec, getSockJsServiceConfig, getTimeSinceLastActive, isClosed, isNew, isOpen, scheduleHeartbeat, sendHeartbeat, sendMessage, toString, tryCloseWithSockJsTransportError, updateLastActiveTime, writeFramepublic AbstractHttpSockJsSession(java.lang.String id,
SockJsServiceConfig config,
WebSocketHandler wsHandler,
java.util.Map<java.lang.String,java.lang.Object> attributes)
public java.net.URI getUri()
WebSocketSessionpublic HttpHeaders getHandshakeHeaders()
WebSocketSessionnull).@Nullable public java.security.Principal getPrincipal()
WebSocketSessionPrincipal instance containing the name
of the authenticated user.
If the user has not been authenticated, the method returns null.
@Nullable public java.net.InetSocketAddress getLocalAddress()
WebSocketSession@Nullable public java.net.InetSocketAddress getRemoteAddress()
WebSocketSessionpublic void setAcceptedProtocol(@Nullable java.lang.String protocol)
protocol - the sub-protocol to set@Nullable public java.lang.String getAcceptedProtocol()
null if no protocol
was specified or negotiated successfullyprotected java.util.Queue<java.lang.String> getMessageCache()
TransportHandlingSockJsServicepublic boolean isActive()
AbstractSockJsSessionisActive in class AbstractSockJsSessionpublic void setTextMessageSizeLimit(int messageSizeLimit)
WebSocketSessionpublic int getTextMessageSizeLimit()
WebSocketSessionpublic void setBinaryMessageSizeLimit(int messageSizeLimit)
WebSocketSessionpublic int getBinaryMessageSizeLimit()
WebSocketSessionpublic java.util.List<WebSocketExtension> getExtensions()
WebSocketSessionpublic void handleInitialRequest(ServerHttpRequest request, ServerHttpResponse response, SockJsFrameFormat frameFormat) throws SockJsException
Long polling-based transports (e.g. "xhr", "jsonp") complete the request after writing the open frame. Streaming-based transports ("xhr_streaming", "eventsource", and "htmlfile") leave the response open longer for further streaming of message frames but will also close it eventually after some amount of data has been sent.
request - the current requestresponse - the current responseframeFormat - the transport-specific SocksJS frame format to useSockJsExceptionpublic void handleSuccessiveRequest(ServerHttpRequest request, ServerHttpResponse response, SockJsFrameFormat frameFormat) throws SockJsException
Long polling-based transports (e.g. "xhr", "jsonp") complete the request after writing any buffered message frames (or the next one). Streaming-based transports ("xhr_streaming", "eventsource", and "htmlfile") leave the response open longer for further streaming of message frames but will also close it eventually after some amount of data has been sent.
request - the current requestresponse - the current responseframeFormat - the transport-specific SocksJS frame format to useSockJsExceptionprotected abstract void handleRequestInternal(ServerHttpRequest request, ServerHttpResponse response, boolean initialRequest) throws java.io.IOException
request - the current requestresponse - the current responseinitialRequest - whether it is the first request for the sessionjava.io.IOExceptionprotected final void sendMessageInternal(java.lang.String message)
throws SockJsTransportFailureException
sendMessageInternal in class AbstractSockJsSessionSockJsTransportFailureExceptionprotected abstract void flushCache()
throws SockJsTransportFailureException
SockJsTransportFailureExceptionprotected void disconnect(CloseStatus status)
AbstractSockJsSessiondisconnect in class AbstractSockJsSessionprotected void resetRequest()
protected void writeFrameInternal(SockJsFrame frame) throws java.io.IOException
writeFrameInternal in class AbstractSockJsSessionjava.io.IOException