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(org.springframework.scheduling.TaskScheduler taskScheduler)
Create an instance with default
transport handler types. |
DefaultSockJsService(org.springframework.scheduling.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(org.springframework.http.server.ServerHttpRequest request,
org.springframework.http.server.ServerHttpResponse response,
WebSocketHandler wsHandler)
Handle request for raw WebSocket communication, i.e.
|
protected void |
handleTransportRequest(org.springframework.http.server.ServerHttpRequest request,
org.springframework.http.server.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(org.springframework.scheduling.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(org.springframework.scheduling.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(org.springframework.http.server.ServerHttpRequest request, org.springframework.http.server.ServerHttpResponse response, WebSocketHandler wsHandler) throws IOException
AbstractSockJsService
handleRawWebSocketRequest
in class AbstractSockJsService
IOException
protected void handleTransportRequest(org.springframework.http.server.ServerHttpRequest request, org.springframework.http.server.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