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 TypeMethodDescriptionconnectAsync
(TransportRequest request, WebSocketHandler handler) Connect the transport.protected abstract void
connectInternal
(TransportRequest request, WebSocketHandler handler, URI receiveUrl, HttpHeaders handshakeHeaders, XhrClientSockJsSession session, CompletableFuture<WebSocketSession> connectFuture) protected void
connectInternal
(TransportRequest request, WebSocketHandler handler, URI receiveUrl, HttpHeaders handshakeHeaders, XhrClientSockJsSession session, SettableListenableFuture<WebSocketSession> connectFuture) Deprecated.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) Get 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
Get 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, an
XhrTransport
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
-
connectAsync
public CompletableFuture<WebSocketSession> connectAsync(TransportRequest request, WebSocketHandler handler) Description copied from interface:Transport
Connect the transport.- Specified by:
connectAsync
in interfaceTransport
- Parameters:
request
- the transport requesthandler
- the application handler to delegate lifecycle events to- Returns:
- a future to indicate success or failure to connect
-
connectInternal
@Deprecated protected void connectInternal(TransportRequest request, WebSocketHandler handler, URI receiveUrl, HttpHeaders handshakeHeaders, XhrClientSockJsSession session, SettableListenableFuture<WebSocketSession> connectFuture) Deprecated. -
connectInternal
protected abstract void connectInternal(TransportRequest request, WebSocketHandler handler, URI receiveUrl, HttpHeaders handshakeHeaders, XhrClientSockJsSession session, CompletableFuture<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)
-