public class WebSocketTransportHandler extends AbstractTransportHandler implements SockJsSessionFactory, HandshakeHandler, org.springframework.context.Lifecycle, org.springframework.web.context.ServletContextAware
TransportHandler. Uses SockJsWebSocketHandler and
WebSocketServerSockJsSession to add SockJS processing.
Also implements HandshakeHandler to support raw WebSocket communication at
SockJS URL "/websocket".
logger| Constructor and Description |
|---|
WebSocketTransportHandler(HandshakeHandler handshakeHandler) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
checkSessionType(SockJsSession session)
Check whether the type of the given session matches the transport type
of this
TransportHandler where session id and the transport type
are extracted from the SockJS URL. |
AbstractSockJsSession |
createSession(String id,
WebSocketHandler handler,
Map<String,Object> attrs)
Create a new SockJS session.
|
boolean |
doHandshake(org.springframework.http.server.ServerHttpRequest request,
org.springframework.http.server.ServerHttpResponse response,
WebSocketHandler handler,
Map<String,Object> attributes)
Initiate the handshake.
|
HandshakeHandler |
getHandshakeHandler() |
TransportType |
getTransportType()
Return the transport type supported by this handler.
|
void |
handleRequest(org.springframework.http.server.ServerHttpRequest request,
org.springframework.http.server.ServerHttpResponse response,
WebSocketHandler wsHandler,
SockJsSession wsSession)
Handle the given request and delegate messages to the provided
WebSocketHandler. |
boolean |
isRunning() |
void |
setServletContext(ServletContext servletContext) |
void |
start() |
void |
stop() |
getServiceConfig, initializepublic WebSocketTransportHandler(HandshakeHandler handshakeHandler)
public TransportType getTransportType()
TransportHandlergetTransportType in interface TransportHandlerpublic HandshakeHandler getHandshakeHandler()
public void setServletContext(ServletContext servletContext)
setServletContext in interface org.springframework.web.context.ServletContextAwarepublic void start()
start in interface org.springframework.context.Lifecyclepublic void stop()
stop in interface org.springframework.context.Lifecyclepublic boolean isRunning()
isRunning in interface org.springframework.context.Lifecyclepublic boolean checkSessionType(SockJsSession session)
TransportHandlerTransportHandler where session id and the transport type
are extracted from the SockJS URL.checkSessionType in interface TransportHandlertrue if the session matches (and would therefore get
accepted by TransportHandler.handleRequest(org.springframework.http.server.ServerHttpRequest, org.springframework.http.server.ServerHttpResponse, org.springframework.web.socket.WebSocketHandler, org.springframework.web.socket.sockjs.transport.SockJsSession)), or false otherwisepublic AbstractSockJsSession createSession(String id, WebSocketHandler handler, Map<String,Object> attrs)
SockJsSessionFactorycreateSession in interface SockJsSessionFactoryid - the ID of the sessionhandler - the underlying WebSocketHandlerattrs - handshake request specific attributesnullpublic void handleRequest(org.springframework.http.server.ServerHttpRequest request,
org.springframework.http.server.ServerHttpResponse response,
WebSocketHandler wsHandler,
SockJsSession wsSession)
throws SockJsException
TransportHandlerWebSocketHandler.handleRequest in interface TransportHandlerrequest - the current requestresponse - the current responsewsHandler - the target WebSocketHandler (never null)wsSession - the SockJS session (never null)SockJsException - raised when request processing fails as
explained in SockJsServicepublic boolean doHandshake(org.springframework.http.server.ServerHttpRequest request,
org.springframework.http.server.ServerHttpResponse response,
WebSocketHandler handler,
Map<String,Object> attributes)
throws HandshakeFailureException
HandshakeHandlerdoHandshake in interface HandshakeHandlerrequest - the current requestresponse - the current responsehandler - the handler to process WebSocket messages; see
PerConnectionWebSocketHandler for providing a handler with
per-connection lifecycle.attributes - the attributes from the HTTP handshake to associate with the WebSocket
session; the provided attributes are copied, the original map is not used.HandshakeFailureException - thrown when handshake processing failed to
complete due to an internal, unrecoverable error, i.e. a server error as
opposed to a failure to successfully negotiate the handshake.