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
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionconnectAsync(TransportRequest request, WebSocketHandler handler) Connect the transport.protected abstract voidconnectInternal(TransportRequest request, WebSocketHandler handler, URI receiveUrl, HttpHeaders handshakeHeaders, XhrClientSockJsSession session, CompletableFuture<WebSocketSession> connectFuture) protected voidconnectInternal(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) voidexecuteSendRequest(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.booleanWhether XHR streaming is disabled or not.voidsetXhrStreamingDisabled(boolean disabled) AnXhrTransportcan 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:TransportGet 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
XhrTransportcould do both.- Specified by:
getTransportTypesin interfaceTransport
-
setXhrStreamingDisabled
public void setXhrStreamingDisabled(boolean disabled) AnXhrTransportcan support both the "xhr_streaming" and "xhr" SockJS server transports. From a client perspective there is no implementation difference.Typically an
XhrTransportis 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
falsewhich means both "XHR streaming" and "XHR" apply. -
isXhrStreamingDisabled
public boolean isXhrStreamingDisabled()Whether XHR streaming is disabled or not.- Specified by:
isXhrStreamingDisabledin interfaceXhrTransport
-
connectAsync
public CompletableFuture<WebSocketSession> connectAsync(TransportRequest request, WebSocketHandler handler) Description copied from interface:TransportConnect the transport.- Specified by:
connectAsyncin 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:InfoReceiverPerform 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
headersparameter.- Specified by:
executeInfoRequestin 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:XhrTransportExecute a request to send the message to the server.Note that as of 4.2 this method accepts a
headersparameter.- Specified by:
executeSendRequestin 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)
-