public class DefaultSockJsService extends AbstractSockJsService
SockJsService
adding support for transport handling
and session management. See AbstractSockJsService
base class for important
details on request mapping.logger
Constructor and Description |
---|
DefaultSockJsService(TaskScheduler taskScheduler)
Create an instance with default
transport handler types. |
DefaultSockJsService(TaskScheduler taskScheduler,
Collection<TransportHandler> transportHandlers,
TransportHandler... transportHandlerOverrides)
Create an instance by overriding or replacing completely the default
transport handler types. |
Modifier and Type | Method and Description |
---|---|
protected void |
addTransportHandlers(Collection<TransportHandler> handlers) |
protected Set<TransportHandler> |
getDefaultTransportHandlers() |
List<HandshakeInterceptor> |
getHandshakeInterceptors()
Return the configured WebSocket handshake request interceptors.
|
SockJsMessageCodec |
getMessageCodec() |
Map<TransportType,TransportHandler> |
getTransportHandlers() |
protected void |
handleRawWebSocketRequest(ServerHttpRequest request,
ServerHttpResponse response,
WebSocketHandler wsHandler)
Handle request for raw WebSocket communication, i.e.
|
protected void |
handleTransportRequest(ServerHttpRequest request,
ServerHttpResponse response,
WebSocketHandler wsHandler,
String sessionId,
String transport)
Handle a SockJS session URL (i.e.
|
protected boolean |
isValidTransportType(String lastSegment)
Validate whether the given transport String extracted from the URL is a valid
SockJS transport type (regardless of whether a transport handler is configured).
|
void |
setHandshakeInterceptors(List<HandshakeInterceptor> interceptors)
Configure one or more WebSocket handshake request interceptors.
|
void |
setMessageCodec(SockJsMessageCodec messageCodec)
The codec to use for encoding and decoding SockJS messages.
|
addCacheHeaders, addCorsHeaders, addNoCacheHeaders, getDisconnectDelay, getHeartbeatTime, getHttpMessageCacheSize, getName, getSockJsClientLibraryUrl, getStreamBytesLimit, getTaskScheduler, handleRequest, isSessionCookieNeeded, isWebSocketEnabled, sendMethodNotAllowed, setDisconnectDelay, setHeartbeatTime, setHttpMessageCacheSize, setName, setSessionCookieNeeded, setSockJsClientLibraryUrl, setStreamBytesLimit, setValidSockJsPrefixes, setWebSocketsEnabled, validateRequest
public DefaultSockJsService(TaskScheduler taskScheduler)
transport handler
types.taskScheduler
- a task scheduler for heart-beat messages and removing
timed-out sessions; the provided TaskScheduler should be declared as a
Spring bean to ensure it is initialized at start up and shut down when the
application stops.public DefaultSockJsService(TaskScheduler taskScheduler, Collection<TransportHandler> transportHandlers, TransportHandler... transportHandlerOverrides)
transport handler
types.taskScheduler
- a task scheduler for heart-beat messages and removing
timed-out sessions; the provided TaskScheduler should be declared as a
Spring bean to ensure it is initialized at start up and shut down when the
application stops.transportHandlers
- the transport handlers to use (replaces the default ones);
can be null
if you don't want to install the default ones.transportHandlerOverrides
- zero or more overrides to the default transport
handler types.protected final Set<TransportHandler> getDefaultTransportHandlers()
protected void addTransportHandlers(Collection<TransportHandler> handlers)
public void setHandshakeInterceptors(List<HandshakeInterceptor> interceptors)
public List<HandshakeInterceptor> getHandshakeInterceptors()
public void setMessageCodec(SockJsMessageCodec messageCodec)
IllegalStateException
- if no SockJsMessageCodec
is availablepublic SockJsMessageCodec getMessageCodec()
public Map<TransportType,TransportHandler> getTransportHandlers()
protected void handleRawWebSocketRequest(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler) throws IOException
AbstractSockJsService
handleRawWebSocketRequest
in class AbstractSockJsService
IOException
protected void handleTransportRequest(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, String sessionId, String transport) throws SockJsException
AbstractSockJsService
handleTransportRequest
in class AbstractSockJsService
SockJsException
protected boolean isValidTransportType(String lastSegment)
AbstractSockJsService
isValidTransportType
in class AbstractSockJsService