下面列出了怎么用org.springframework.web.socket.sockjs.client.RestTemplateXhrTransport的API类实例代码及写法,或者点击链接到github查看源代码。
private void testOverSockJS() throws InterruptedException {
// sock js transport
List<Transport> transports = new ArrayList<>(2);
transports.add(new WebSocketTransport(new StandardWebSocketClient()));
transports.add(new RestTemplateXhrTransport());
SockJsClient sockjsClient = new SockJsClient(transports);
WebSocketStompClient stompClient = new WebSocketStompClient(sockjsClient);
// StringMessageConverter
stompClient.setMessageConverter(new MappingJackson2MessageConverter());
stompClient.setTaskScheduler(taskScheduler); // for heartbeats
stompClient.connect(brokerSockJS, getSockJSSessionHandlerAdapter());
Thread.sleep(100000L);
}
@BeforeClass
public static void setup() throws Exception {
log.info("Setting up Quotes Web Socket Integration test....");
port = SocketUtils.findAvailableTcpPort();
server = new TomcatWebSocketTestServer(port);
server.deployConfig(FrontendWebApplicationInitializer.class);
server.start();
loginAndSaveXAuthToken("harrymitchell", "HarryMitchell5!", headers);
List<Transport> transports = new ArrayList<>();
transports.add(new WebSocketTransport(new StandardWebSocketClient()));
RestTemplateXhrTransport xhrTransport = new RestTemplateXhrTransport(new RestTemplate());
xhrTransport.setRequestHeaders(headers);
transports.add(xhrTransport);
sockJsClient = new SockJsClient(transports);
sockJsClient.setHttpHeaderNames("X-Auth-Token");
log.info("Setup complete!");
}
@Before
public void setup() {
List<Transport> transports = new ArrayList<>();
transports.add(new WebSocketTransport(new StandardWebSocketClient()));
transports.add(new RestTemplateXhrTransport());
this.sockJsClient = new SockJsClient(transports);
}
@Test
void run() {
List<Transport> transports = new ArrayList<>(2);
transports.add(new WebSocketTransport(new StandardWebSocketClient()));
transports.add(new RestTemplateXhrTransport());
SockJsClient sockJsClient = new SockJsClient(transports);
ListenableFuture<WebSocketSession> wsSession = sockJsClient.doHandshake(this.webSocketHandler,
"ws://localhost:" + this.port + "/sockjs");
assertThatExceptionOfType(ExecutionException.class)
.isThrownBy(() -> wsSession.get().sendMessage(new TextMessage("a")));
}
private List<Transport> createTransportClient() {
final List<Transport> transports = new ArrayList<>();
transports.add(new WebSocketTransport(new StandardWebSocketClient()));
transports.add(new RestTemplateXhrTransport(new RestTemplate()));
return transports;
}