org.springframework.web.socket.sockjs.client.SockJsClient Java Examples

The following examples show how to use org.springframework.web.socket.sockjs.client.SockJsClient. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: Stomp.java    From WeEvent with Apache License 2.0 7 votes vote down vote up
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);
}
 
Example #2
Source File: SpringWebSocketITest.java    From java-specialagent with Apache License 2.0 6 votes vote down vote up
@Bean
public CommandLineRunner commandLineRunner() {
  return new CommandLineRunner() {
    @Override
    public void run(final String ... args) throws Exception {
      final String url = "ws://localhost:8080/test-websocket";

      final WebSocketStompClient stompClient = new WebSocketStompClient(new SockJsClient(createTransportClient()));
      stompClient.setMessageConverter(new MappingJackson2MessageConverter());

      final StompSession stompSession = stompClient.connect(url, new StompSessionHandlerAdapter() {
      }).get(10, TimeUnit.SECONDS);

      stompSession.subscribe(SUBSCRIBE_GREETINGS_ENDPOINT, new GreetingStompFrameHandler());
      stompSession.send(SEND_HELLO_MESSAGE_ENDPOINT, "Hello");
    }
  };
}
 
Example #3
Source File: Application.java    From spring-websocket-client with MIT License 6 votes vote down vote up
public static void main(String args[]) throws Exception
   {
WebSocketClient simpleWebSocketClient =
    new StandardWebSocketClient();
List<Transport> transports = new ArrayList<>(1);
transports.add(new WebSocketTransport(simpleWebSocketClient));

SockJsClient sockJsClient = new SockJsClient(transports);
WebSocketStompClient stompClient =
    new WebSocketStompClient(sockJsClient);
stompClient.setMessageConverter(new MappingJackson2MessageConverter());

String url = "ws://localhost:9090/chat";
String userId = "spring-" +
    ThreadLocalRandom.current().nextInt(1, 99);
StompSessionHandler sessionHandler = new MyStompSessionHandler(userId);
StompSession session = stompClient.connect(url, sessionHandler)
    .get();
BufferedReader in =
    new BufferedReader(new InputStreamReader(System.in));
for (;;) {
    System.out.print(userId + " >> ");
    System.out.flush();
    String line = in.readLine();
    if ( line == null ) break;
    if ( line.length() == 0 ) continue;
    ClientMessage msg = new ClientMessage(userId, line);
    session.send("/app/chat/java", msg);
}
   }
 
Example #4
Source File: QuotesWebSocketIntegrationTest.java    From bearchoke with Apache License 2.0 6 votes vote down vote up
@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!");
}
 
Example #5
Source File: WebsocketTest.java    From seppb with MIT License 5 votes vote down vote up
@Before
public void setup() {
	List<Transport> transports = new ArrayList<>();
	transports.add(new WebSocketTransport(new StandardWebSocketClient()));
	transports.add(new RestTemplateXhrTransport());
	this.sockJsClient = new SockJsClient(transports);
}
 
Example #6
Source File: GreetingIntegrationTests.java    From code with Apache License 2.0 5 votes vote down vote up
@BeforeEach
public void setup() {
	List<Transport> transports = new ArrayList<>();
	transports.add(new WebSocketTransport(new StandardWebSocketClient()));
	this.sockJsClient = new SockJsClient(transports);

	this.stompClient = new WebSocketStompClient(sockJsClient);
	this.stompClient.setMessageConverter(new MappingJackson2MessageConverter());
}
 
Example #7
Source File: WebSocket.java    From football-events with MIT License 5 votes vote down vote up
public WebSocket(String url) {
    this.url = url;
    var transports = new ArrayList<Transport>(1);
    transports.add(new WebSocketTransport(new StandardWebSocketClient()));
    WebSocketClient webSocketClient = new SockJsClient(transports);
    client = new WebSocketStompClient(webSocketClient);
    client.setMessageConverter(new MappingJackson2MessageConverter());
}
 
Example #8
Source File: SpringWebsocketTracingTest.java    From java-spring-cloud with Apache License 2.0 5 votes vote down vote up
@Test
public void testTracedWebsocketSession()
    throws URISyntaxException, InterruptedException, ExecutionException, TimeoutException {
  WebSocketStompClient stompClient = new WebSocketStompClient(
      new SockJsClient(createTransportClient()));
  stompClient.setMessageConverter(new MappingJackson2MessageConverter());

  StompSession stompSession = stompClient.connect(url, new StompSessionHandlerAdapter() {
  }).get(1, TimeUnit.SECONDS);

  stompSession.subscribe(SUBSCRIBE_GREETINGS_ENDPOINT, new GreetingStompFrameHandler());
  stompSession.send(SEND_HELLO_MESSAGE_ENDPOINT, new HelloMessage("Hi"));

  await().until(() -> mockTracer.finishedSpans().size() == 3);
  List<MockSpan> mockSpans = mockTracer.finishedSpans();

  // test same trace
  assertEquals(mockSpans.get(0).context().traceId(), mockSpans.get(1).context().traceId());
  assertEquals(mockSpans.get(0).context().traceId(), mockSpans.get(2).context().traceId());

  List<MockSpan> sendHelloSpans = mockSpans.stream()
      .filter(s -> s.operationName().equals(SEND_HELLO_MESSAGE_ENDPOINT))
      .collect(Collectors.toList());
  List<MockSpan> subscribeGreetingsEndpointSpans = mockSpans.stream().filter(s ->
      s.operationName().equals(SUBSCRIBE_GREETINGS_ENDPOINT))
      .collect(Collectors.toList());
  List<MockSpan> greetingControllerSpans = mockSpans.stream().filter(s ->
      s.operationName().equals(GreetingController.DOING_WORK))
      .collect(Collectors.toList());
  assertEquals(sendHelloSpans.size(), 1);
  assertEquals(subscribeGreetingsEndpointSpans.size(), 1);
  assertEquals(greetingControllerSpans.size(), 1);
  assertEquals(sendHelloSpans.get(0).context().spanId(), subscribeGreetingsEndpointSpans.get(0).parentId());
  assertEquals(sendHelloSpans.get(0).context().spanId(), greetingControllerSpans.get(0).parentId());
}
 
Example #9
Source File: ApplicationTests.java    From spring-session with Apache License 2.0 5 votes vote down vote up
@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")));
}
 
Example #10
Source File: WebSocketControllerTest.java    From spring-boot-vuejs-websockets with MIT License 4 votes vote down vote up
@Before
public void setup() {
	stompClient = new WebSocketStompClient(
			new SockJsClient(asList(new WebSocketTransport(new StandardWebSocketClient()))));
}
 
Example #11
Source File: AbstractStreamControllerTest.java    From kafka-webview with MIT License 4 votes vote down vote up
/**
 * Attempts to make a websocket connection as an authenticated user, and stream values from a view.
 */
@Test
public void test_authenticated_webSocketConnection() throws InterruptedException {
    // Create a count down latch to know when we have consumed all of our records.
    final CountDownLatch countDownLatch = new CountDownLatch(kafkaRecords.size());

    // Create a list we can add our consumed records to
    final List<Map> consumedRecords = new ArrayList<>();

    // Login to instance.
    final UserLoginDetails userLoginDetails = login();

    final WebSocketHttpHeaders socketHttpHeaders = new WebSocketHttpHeaders(userLoginDetails.getHttpHeaders());
    final long userId = userLoginDetails.getUserId();

    // Create websocket client
    final SockJsClient sockJsClient = new SockJsClient(createTransportClient());
    final WebSocketStompClient stompClient = new WebSocketStompClient(sockJsClient);
    stompClient.setMessageConverter(new MappingJackson2MessageConverter());

    // Connect to websocket
    stompClient.connect(WEBSOCKET_URL, socketHttpHeaders, new StompSessionHandlerAdapter() {
        /**
         * After we connect, subscribe to our view.
         */
        @Override
        public void afterConnected(final StompSession session, final StompHeaders connectedHeaders) {
            session.setAutoReceipt(false);
            subscribeToResults(session, view.getId(), userId, countDownLatch, consumedRecords);
            try {
                requestNewStream(session, view.getId());
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        }
    }, port);

    // Start the client.
    stompClient.start();

    // Define a max time of 15 seconds
    Duration testTimeout = Duration.ofSeconds(15);

    while (countDownLatch.getCount() > 0) {
        // Sleep for a period and recheck.
        Thread.sleep(1000L);
        testTimeout = testTimeout.minusSeconds(1);

        if (testTimeout.isNegative()) {
            fail("Test timed out!");
        }
    }

    // Success!
    assertEquals("Found all messages!", consumedRecords.size(), kafkaRecords.size());
}