@Override protected void connectInternal(TransportRequest transportRequest, WebSocketHandler handler, URI url, HttpHeaders handshakeHeaders, XhrClientSockJsSession session, SettableListenableFuture<WebSocketSession> connectFuture) { HttpHeaders httpHeaders = transportRequest.getHttpRequestHeaders(); SockJsResponseListener listener = new SockJsResponseListener(url, httpHeaders, session, connectFuture); executeReceiveRequest(url, handshakeHeaders, listener); }
@Override public String getId() { return this.request.getSockJsUrlInfo().getSessionId(); }
@Override public URI getUri() { return this.request.getSockJsUrlInfo().getSockJsUrl(); }
public void connect(WebSocketHandler handler, SettableListenableFuture<WebSocketSession> future) { if (logger.isTraceEnabled()) { logger.trace("Starting " + this); } ConnectCallback connectCallback = new ConnectCallback(handler, future); scheduleConnectTimeoutTask(connectCallback); this.transport.connect(this, handler).addCallback(connectCallback); }
@Test public void connectSockJsInfoCached() throws Exception { setupInfoRequest(true); this.sockJsClient.doHandshake(handler, URL); this.sockJsClient.doHandshake(handler, URL); this.sockJsClient.doHandshake(handler, URL); verify(this.infoReceiver, times(1)).executeInfoRequest(any(), any()); }
@Override protected ResponseEntity<String> executeInfoRequestInternal(URI infoUrl, HttpHeaders headers) { RequestCallback requestCallback = new XhrRequestCallback(headers); return nonNull(this.restTemplate.execute(infoUrl, HttpMethod.GET, requestCallback, textResponseExtractor)); }
private static InfoReceiver initInfoReceiver(List<Transport> transports) { for (Transport transport : transports) { if (transport instanceof InfoReceiver) { return ((InfoReceiver) transport); } } return new RestTemplateXhrTransport(); }
@Override public HttpHeaders getHandshakeHeaders() { return this.request.getHandshakeHeaders(); }
@Override public URI getTransportUrl() { return this.sockJsUrlInfo.getTransportUrl(this.serverTransportType); }
@Override public void afterConnectionClosed(WebSocketSession webSocketSession, CloseStatus status) throws Exception { this.sockJsSession.afterTransportClosed(status); } }
@Override protected void connectInternal(TransportRequest request, WebSocketHandler handler, URI receiveUrl, HttpHeaders handshakeHeaders, XhrClientSockJsSession session, SettableListenableFuture<WebSocketSession> connectFuture) { executeReceiveRequest(request, receiveUrl, handshakeHeaders, session, connectFuture); }
@Override public void onFailure(Throwable ex) { handleFailure(ex, false); }
@Override protected void sendInternal(TextMessage message) { this.transport.executeSendRequest(this.sendUrl, this.sendHeaders, message); }
@Override protected ResponseEntity<String> executeInfoRequestInternal(URI infoUrl, HttpHeaders headers) { return executeRequest(infoUrl, HttpMethod.GET, headers, null); }
@Override public Principal getPrincipal() { return this.request.getUser(); }
@Override public void failed(IOException exc) { onFailure(exc); }
@Override protected ResponseEntity<String> executeInfoRequestInternal(URI infoUrl, HttpHeaders headers) { return executeRequest(infoUrl, Methods.GET, headers, null); }
@Test public void echoXhr() throws Exception { AbstractXhrTransport xhrTransport = createXhrTransport(); xhrTransport.setXhrStreamingDisabled(true); testEcho(100, xhrTransport, null); }
@Test public void receiveOneMessageXhr() throws Exception { AbstractXhrTransport xhrTransport = createXhrTransport(); xhrTransport.setXhrStreamingDisabled(true); testReceiveOneMessage(xhrTransport, null); }
private ListenableFuture<WebSocketSession> connect(ClientHttpResponse... responses) throws Exception { return connect(new TestRestTemplate(responses)); }