Class AbstractXhrTransport
java.lang.Object
org.springframework.web.socket.sockjs.client.AbstractXhrTransport
- All Implemented Interfaces:
InfoReceiver
,Transport
,XhrTransport
- Direct Known Subclasses:
JettyXhrTransport
,RestTemplateXhrTransport
,UndertowXhrTransport
Abstract base class for XHR transport implementations to extend.
- Since:
- 4.1
- Author:
- Rossen Stoyanchev
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionconnect
(TransportRequest request, WebSocketHandler handler) Connect the transport.protected abstract void
connectInternal
(TransportRequest request, WebSocketHandler handler, URI receiveUrl, HttpHeaders handshakeHeaders, XhrClientSockJsSession session, SettableListenableFuture<WebSocketSession> connectFuture) executeInfoRequest
(URI infoUrl, HttpHeaders headers) Perform an HTTP request to the SockJS "Info" URL.protected abstract ResponseEntity<String>
executeInfoRequestInternal
(URI infoUrl, HttpHeaders headers) void
executeSendRequest
(URI url, HttpHeaders headers, TextMessage message) Execute a request to send the message to the server.protected abstract ResponseEntity<String>
executeSendRequestInternal
(URI url, HttpHeaders headers, TextMessage message) Return the SockJS transport types that this transport can be used for.boolean
Whether XHR streaming is disabled or not.void
setXhrStreamingDisabled
(boolean disabled) AnXhrTransport
can support both the "xhr_streaming" and "xhr" SockJS server transports.
-
Field Details
-
PRELUDE
-
logger
-
-
Constructor Details
-
AbstractXhrTransport
public AbstractXhrTransport()
-
-
Method Details
-
getTransportTypes
Description copied from interface:Transport
Return the SockJS transport types that this transport can be used for. In particular since from a client perspective there is no difference between XHR and XHR streaming, anXhrTransport
could do both.- Specified by:
getTransportTypes
in interfaceTransport
-
setXhrStreamingDisabled
public void setXhrStreamingDisabled(boolean disabled) AnXhrTransport
can support both the "xhr_streaming" and "xhr" SockJS server transports. From a client perspective there is no implementation difference.Typically an
XhrTransport
is used as "XHR streaming" first and then, if that fails, as "XHR". In some cases however it may be helpful to suppress XHR streaming so that only XHR is attempted.By default this property is set to
false
which means both "XHR streaming" and "XHR" apply. -
isXhrStreamingDisabled
public boolean isXhrStreamingDisabled()Whether XHR streaming is disabled or not.- Specified by:
isXhrStreamingDisabled
in interfaceXhrTransport
-
connect
public ListenableFuture<WebSocketSession> connect(TransportRequest request, WebSocketHandler handler) Description copied from interface:Transport
Connect the transport. -
connectInternal
protected abstract void connectInternal(TransportRequest request, WebSocketHandler handler, URI receiveUrl, HttpHeaders handshakeHeaders, XhrClientSockJsSession session, SettableListenableFuture<WebSocketSession> connectFuture) -
executeInfoRequest
Description copied from interface:InfoReceiver
Perform an HTTP request to the SockJS "Info" URL. and return the resulting JSON response content, or raise an exception.Note that as of 4.2 this method accepts a
headers
parameter.- Specified by:
executeInfoRequest
in interfaceInfoReceiver
- Parameters:
infoUrl
- the URL to obtain SockJS server information fromheaders
- the headers to use for the request- Returns:
- the body of the response
-
executeInfoRequestInternal
protected abstract ResponseEntity<String> executeInfoRequestInternal(URI infoUrl, HttpHeaders headers) -
executeSendRequest
Description copied from interface:XhrTransport
Execute a request to send the message to the server.Note that as of 4.2 this method accepts a
headers
parameter.- Specified by:
executeSendRequest
in interfaceXhrTransport
- Parameters:
url
- the URL for sending messages.message
- the message to send
-
executeSendRequestInternal
protected abstract ResponseEntity<String> executeSendRequestInternal(URI url, HttpHeaders headers, TextMessage message)
-