public abstract class AbstractHttpSockJsSession extends AbstractSockJsSession
DISCONNECTED_CLIENT_LOG_CATEGORY, disconnectedClientLogger, logger, responseLock| Constructor and Description |
|---|
AbstractHttpSockJsSession(String id,
SockJsServiceConfig config,
WebSocketHandler wsHandler,
Map<String,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.
|
String |
getAcceptedProtocol()
Return the selected sub-protocol to use.
|
int |
getBinaryMessageSizeLimit()
Get the configured maximum size for an incoming binary message.
|
List<WebSocketExtension> |
getExtensions()
Determine the negotiated extensions.
|
HttpHeaders |
getHandshakeHeaders()
Return the headers used in the handshake request (never
null). |
InetSocketAddress |
getLocalAddress()
Return the address on which the request was received.
|
protected Queue<String> |
getMessageCache()
Return the SockJS buffer for messages stored transparently between polling
requests.
|
Principal |
getPrincipal()
Return a
Principal instance containing the name
of the authenticated user. |
InetSocketAddress |
getRemoteAddress()
Return the address of the remote client.
|
int |
getTextMessageSizeLimit()
Get the configured maximum size for an incoming text message.
|
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(String message) |
void |
setAcceptedProtocol(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(String id, SockJsServiceConfig config, WebSocketHandler wsHandler, Map<String,Object> attributes)
public URI getUri()
WebSocketSessionpublic HttpHeaders getHandshakeHeaders()
WebSocketSessionnull).@Nullable public Principal getPrincipal()
WebSocketSessionPrincipal instance containing the name
of the authenticated user.
If the user has not been authenticated, the method returns null.
@Nullable public InetSocketAddress getLocalAddress()
WebSocketSession@Nullable public InetSocketAddress getRemoteAddress()
WebSocketSessionpublic void setAcceptedProtocol(@Nullable String protocol)
protocol - the sub-protocol to set@Nullable public String getAcceptedProtocol()
null if no protocol
was specified or negotiated successfullyprotected Queue<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 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 IOException
request - the current requestresponse - the current responseinitialRequest - whether it is the first request for the sessionIOExceptionprotected final void sendMessageInternal(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 IOException
writeFrameInternal in class AbstractSockJsSessionIOException