javax.websocket.ContainerProvider Java Examples
The following examples show how to use
javax.websocket.ContainerProvider.
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: SuspendResumeTestCase.java From quarkus-http with Apache License 2.0 | 7 votes |
@Test public void testRejectWhenSuspended() throws Exception { try { serverContainer.pause(null); ContainerProvider.getWebSocketContainer().connectToServer(new Endpoint() { @Override public void onOpen(Session session, EndpointConfig config) { } }, new URI(DefaultServer.getDefaultServerURL() + "/")); } catch (IOException e) { //expected } finally { serverContainer.resume(); } }
Example #2
Source File: TestWsRemoteEndpointImplServer.java From Tomcat7.0.67 with Apache License 2.0 | 6 votes |
@Test public void testClientDropsConnection() throws Exception { Tomcat tomcat = getTomcatInstance(); // No file system docBase required Context ctx = tomcat.addContext("", null); ctx.addApplicationListener(Bug58624Config.class.getName()); Tomcat.addServlet(ctx, "default", new DefaultServlet()); ctx.addServletMapping("/", "default"); WebSocketContainer wsContainer = ContainerProvider.getWebSocketContainer(); tomcat.start(); SimpleClient client = new SimpleClient(); URI uri = new URI("ws://localhost:" + getPort() + Bug58624Config.PATH); Session session = wsContainer.connectToServer(client, uri); // Break point A required on following line session.close(); }
Example #3
Source File: TesterWsClientAutobahn.java From Tomcat7.0.67 with Apache License 2.0 | 6 votes |
public static void main(String[] args) throws Exception { WebSocketContainer wsc = ContainerProvider.getWebSocketContainer(); int testCaseCount = getTestCaseCount(wsc); System.out.println("There are " + testCaseCount + " test cases"); for (int testCase = 1; testCase <= testCaseCount; testCase++) { if (testCase % 50 == 0) { System.out.println(testCase); } else { System.out.print('.'); } try { executeTestCase(wsc, testCase); } catch (Throwable t) { ExceptionUtils.handleThrowable(t); t.printStackTrace(); } } System.out.println("Testing complete"); updateReports(wsc); }
Example #4
Source File: TestWsWebSocketContainer.java From Tomcat8-Source-Read with MIT License | 6 votes |
@Test(expected=javax.websocket.DeploymentException.class) public void testConnectToServerEndpointInvalidScheme() throws Exception { Tomcat tomcat = getTomcatInstance(); // No file system docBase required Context ctx = tomcat.addContext("", null); ctx.addApplicationListener(TesterEchoServer.Config.class.getName()); tomcat.start(); WebSocketContainer wsContainer = ContainerProvider.getWebSocketContainer(); wsContainer.connectToServer(TesterProgrammaticEndpoint.class, ClientEndpointConfig.Builder.create().build(), new URI("ftp://" + getHostName() + ":" + getPort() + TesterEchoServer.Config.PATH_ASYNC)); }
Example #5
Source File: TestWebSocketFrameClient.java From Tomcat8-Source-Read with MIT License | 6 votes |
public void echoTester(String path, ClientEndpointConfig clientEndpointConfig) throws Exception { WebSocketContainer wsContainer = ContainerProvider.getWebSocketContainer(); if (clientEndpointConfig == null) { clientEndpointConfig = ClientEndpointConfig.Builder.create().build(); } Session wsSession = wsContainer.connectToServer(TesterProgrammaticEndpoint.class, clientEndpointConfig, new URI("ws://localhost:" + getPort() + path)); CountDownLatch latch = new CountDownLatch(1); BasicText handler = new BasicText(latch); wsSession.addMessageHandler(handler); wsSession.getBasicRemote().sendText("Hello"); boolean latchResult = handler.getLatch().await(10, TimeUnit.SECONDS); Assert.assertTrue(latchResult); Queue<String> messages = handler.getMessages(); Assert.assertEquals(1, messages.size()); for (String message : messages) { Assert.assertEquals("Hello", message); } wsSession.close(); }
Example #6
Source File: TestWsRemoteEndpointImplServer.java From Tomcat8-Source-Read with MIT License | 6 votes |
@Test public void testClientDropsConnection() throws Exception { Tomcat tomcat = getTomcatInstance(); // No file system docBase required Context ctx = tomcat.addContext("", null); ctx.addApplicationListener(Bug58624Config.class.getName()); Tomcat.addServlet(ctx, "default", new DefaultServlet()); ctx.addServletMappingDecoded("/", "default"); WebSocketContainer wsContainer = ContainerProvider.getWebSocketContainer(); tomcat.start(); SimpleClient client = new SimpleClient(); URI uri = new URI("ws://localhost:" + getPort() + Bug58624Config.PATH); Session session = wsContainer.connectToServer(client, uri); // Break point A required on following line session.close(); }
Example #7
Source File: TesterWsClientAutobahn.java From Tomcat8-Source-Read with MIT License | 6 votes |
public static void main(String[] args) throws Exception { WebSocketContainer wsc = ContainerProvider.getWebSocketContainer(); int testCaseCount = getTestCaseCount(wsc); System.out.println("There are " + testCaseCount + " test cases"); for (int testCase = 1; testCase <= testCaseCount; testCase++) { if (testCase % 50 == 0) { System.out.println(testCase); } else { System.out.print('.'); } try { executeTestCase(wsc, testCase); } catch (Throwable t) { ExceptionUtils.handleThrowable(t); t.printStackTrace(); } } System.out.println("Testing complete"); updateReports(wsc); }
Example #8
Source File: WebSocketJSR356Test.java From camel-quarkus with Apache License 2.0 | 6 votes |
@Test public void testWebsocketChat() throws Exception { LinkedBlockingDeque<String> message = new LinkedBlockingDeque<>(); Endpoint endpoint = new Endpoint() { @Override public void onOpen(Session session, EndpointConfig endpointConfig) { session.addMessageHandler(new MessageHandler.Whole<String>() { @Override public void onMessage(String s) { message.add(s); } }); session.getAsyncRemote().sendText("Camel Quarkus WebSocket"); } }; ClientEndpointConfig config = ClientEndpointConfig.Builder.create().build(); try (Session session = ContainerProvider.getWebSocketContainer().connectToServer(endpoint, config, uri)) { Assertions.assertEquals("Hello Camel Quarkus WebSocket", message.poll(5, TimeUnit.SECONDS)); } }
Example #9
Source File: TestConnectionLimit.java From Tomcat8-Source-Read with MIT License | 6 votes |
@Override public void run() { WebSocketContainer wsContainer = ContainerProvider.getWebSocketContainer(); int count = 0; try { while (true) { wsContainer.connectToServer(TesterProgrammaticEndpoint.class, Builder.create().build(), uri); count = counter.incrementAndGet(); if (count % 100 == 0) { System.out.println(count + " and counting..."); } } } catch (IOException | DeploymentException ioe) { // Let thread die } }
Example #10
Source File: TestWebSocketFrameClient.java From Tomcat7.0.67 with Apache License 2.0 | 6 votes |
public void echoTester(String path) throws Exception { WebSocketContainer wsContainer = ContainerProvider.getWebSocketContainer(); ClientEndpointConfig clientEndpointConfig = ClientEndpointConfig.Builder.create().build(); Session wsSession = wsContainer.connectToServer( TesterProgrammaticEndpoint.class, clientEndpointConfig, new URI("ws://localhost:" + getPort() + path)); CountDownLatch latch = new CountDownLatch(1); BasicText handler = new BasicText(latch); wsSession.addMessageHandler(handler); wsSession.getBasicRemote().sendText("Hello"); handler.getLatch().await(100, TimeUnit.MILLISECONDS); Queue<String> messages = handler.getMessages(); Assert.assertEquals(1, messages.size()); for (String message : messages) { Assert.assertEquals("Hello", message); } wsSession.close(); }
Example #11
Source File: TestWsWebSocketContainer.java From Tomcat7.0.67 with Apache License 2.0 | 6 votes |
@Test(expected=javax.websocket.DeploymentException.class) public void testConnectToServerEndpointInvalidScheme() throws Exception { Tomcat tomcat = getTomcatInstance(); // No file system docBase required Context ctx = tomcat.addContext("", null); ctx.addApplicationListener(TesterEchoServer.Config.class.getName()); tomcat.start(); WebSocketContainer wsContainer = ContainerProvider.getWebSocketContainer(); wsContainer.connectToServer(TesterProgrammaticEndpoint.class, ClientEndpointConfig.Builder.create().build(), new URI("ftp://" + getHostName() + ":" + getPort() + TesterEchoServer.Config.PATH_ASYNC)); }
Example #12
Source File: WebsocketClient.java From lams with GNU General Public License v2.0 | 6 votes |
public WebsocketClient(String uri, final String sessionID, MessageHandler.Whole<String> messageHandler) throws IOException { // add session ID so the request gets through LAMS security Builder configBuilder = ClientEndpointConfig.Builder.create(); configBuilder.configurator(new Configurator() { @Override public void beforeRequest(Map<String, List<String>> headers) { headers.put("Cookie", Arrays.asList("JSESSIONID=" + sessionID)); } }); ClientEndpointConfig clientConfig = configBuilder.build(); this.websocketEndpoint = new WebsocketEndpoint(messageHandler); WebSocketContainer container = ContainerProvider.getWebSocketContainer(); try { container.connectToServer(websocketEndpoint, clientConfig, new URI(uri)); } catch (DeploymentException | URISyntaxException e) { throw new IOException("Error while connecting to websocket server", e); } }
Example #13
Source File: TestWsWebSocketContainer.java From Tomcat8-Source-Read with MIT License | 5 votes |
private void doTestPerMessageDeflateClient(String msg, int count) throws Exception { Tomcat tomcat = getTomcatInstance(); // No file system docBase required Context ctx = tomcat.addContext("", null); ctx.addApplicationListener(TesterEchoServer.Config.class.getName()); Tomcat.addServlet(ctx, "default", new DefaultServlet()); ctx.addServletMappingDecoded("/", "default"); tomcat.start(); Extension perMessageDeflate = new WsExtension(PerMessageDeflate.NAME); List<Extension> extensions = new ArrayList<>(1); extensions.add(perMessageDeflate); ClientEndpointConfig clientConfig = ClientEndpointConfig.Builder.create().extensions(extensions).build(); WebSocketContainer wsContainer = ContainerProvider.getWebSocketContainer(); Session wsSession = wsContainer.connectToServer( TesterProgrammaticEndpoint.class, clientConfig, new URI("ws://" + getHostName() + ":" + getPort() + TesterEchoServer.Config.PATH_ASYNC)); CountDownLatch latch = new CountDownLatch(count); BasicText handler = new BasicText(latch, msg); wsSession.addMessageHandler(handler); for (int i = 0; i < count; i++) { wsSession.getBasicRemote().sendText(msg); } boolean latchResult = handler.getLatch().await(10, TimeUnit.SECONDS); Assert.assertTrue(latchResult); ((WsWebSocketContainer) wsContainer).destroy(); }
Example #14
Source File: TestWsWebSocketContainer.java From Tomcat7.0.67 with Apache License 2.0 | 5 votes |
private void doTestPerMessageDefalteClient(String msg, int count) throws Exception { Tomcat tomcat = getTomcatInstance(); // Must have a real docBase - just use temp Context ctx = tomcat.addContext("", System.getProperty("java.io.tmpdir")); ctx.addApplicationListener(TesterEchoServer.Config.class.getName()); Tomcat.addServlet(ctx, "default", new DefaultServlet()); ctx.addServletMapping("/", "default"); tomcat.start(); Extension perMessageDeflate = new WsExtension(PerMessageDeflate.NAME); List<Extension> extensions = new ArrayList<Extension>(1); extensions.add(perMessageDeflate); ClientEndpointConfig clientConfig = ClientEndpointConfig.Builder.create().extensions(extensions).build(); WebSocketContainer wsContainer = ContainerProvider.getWebSocketContainer(); Session wsSession = wsContainer.connectToServer( TesterProgrammaticEndpoint.class, clientConfig, new URI("ws://" + getHostName() + ":" + getPort() + TesterEchoServer.Config.PATH_ASYNC)); CountDownLatch latch = new CountDownLatch(count); BasicText handler = new BasicText(latch, msg); wsSession.addMessageHandler(handler); for (int i = 0; i < count; i++) { wsSession.getBasicRemote().sendText(msg); } boolean latchResult = handler.getLatch().await(10, TimeUnit.SECONDS); Assert.assertTrue(latchResult); ((WsWebSocketContainer) wsContainer).destroy(); }
Example #15
Source File: TestWsWebSocketContainer.java From Tomcat7.0.67 with Apache License 2.0 | 5 votes |
@Test(expected=javax.websocket.DeploymentException.class) public void testConnectToServerEndpointNoHost() throws Exception { Tomcat tomcat = getTomcatInstance(); // No file system docBase required Context ctx = tomcat.addContext("", null); ctx.addApplicationListener(TesterEchoServer.Config.class.getName()); tomcat.start(); WebSocketContainer wsContainer = ContainerProvider.getWebSocketContainer(); wsContainer.connectToServer(TesterProgrammaticEndpoint.class, ClientEndpointConfig.Builder.create().build(), new URI("ws://" + TesterEchoServer.Config.PATH_ASYNC)); }
Example #16
Source File: TestWsWebSocketContainer.java From Tomcat7.0.67 with Apache License 2.0 | 5 votes |
@Test public void testConnectToServerEndpoint() throws Exception { Tomcat tomcat = getTomcatInstance(); // No file system docBase required Context ctx = tomcat.addContext("", null); ctx.addApplicationListener(TesterEchoServer.Config.class.getName()); Tomcat.addServlet(ctx, "default", new DefaultServlet()); ctx.addServletMapping("/", "default"); tomcat.start(); WebSocketContainer wsContainer = ContainerProvider.getWebSocketContainer(); // Set this artificially small to trigger // https://bz.apache.org/bugzilla/show_bug.cgi?id=57054 wsContainer.setDefaultMaxBinaryMessageBufferSize(64); Session wsSession = wsContainer.connectToServer( TesterProgrammaticEndpoint.class, ClientEndpointConfig.Builder.create().build(), new URI("ws://" + getHostName() + ":" + getPort() + TesterEchoServer.Config.PATH_ASYNC)); CountDownLatch latch = new CountDownLatch(1); BasicText handler = new BasicText(latch); wsSession.addMessageHandler(handler); wsSession.getBasicRemote().sendText(MESSAGE_STRING_1); boolean latchResult = handler.getLatch().await(10, TimeUnit.SECONDS); Assert.assertTrue(latchResult); Queue<String> messages = handler.getMessages(); Assert.assertEquals(1, messages.size()); Assert.assertEquals(MESSAGE_STRING_1, messages.peek()); ((WsWebSocketContainer) wsContainer).destroy(); }
Example #17
Source File: JsrWebSocketServerTest.java From quarkus-http with Apache License 2.0 | 5 votes |
@Test @Ignore("UT3 - P2") public void testErrorHandling() throws Exception { ServerWebSocketContainer builder = new ServerWebSocketContainer(TestClassIntrospector.INSTANCE, DefaultServer.getEventLoopSupplier(), Collections.EMPTY_LIST, false, false); builder.addEndpoint(ServerEndpointConfig.Builder.create(ProgramaticErrorEndpoint.class, "/").configurator(new InstanceConfigurator(new ProgramaticErrorEndpoint())).build()); deployServlet(builder); AnnotatedClientEndpoint c = new AnnotatedClientEndpoint(); Session session = ContainerProvider.getWebSocketContainer().connectToServer(c, new URI("ws://" + DefaultServer.getHostAddress("default") + ":" + DefaultServer.getHostPort("default") + "/")); Assert.assertEquals("hi", ProgramaticErrorEndpoint.getMessage()); session.getAsyncRemote().sendText("app-error"); Assert.assertEquals("app-error", ProgramaticErrorEndpoint.getMessage()); Assert.assertEquals("ERROR: java.lang.RuntimeException", ProgramaticErrorEndpoint.getMessage()); Assert.assertTrue(c.isOpen()); session.getBasicRemote().sendText("io-error"); Assert.assertEquals("io-error", ProgramaticErrorEndpoint.getMessage()); Assert.assertEquals("ERROR: java.lang.RuntimeException", ProgramaticErrorEndpoint.getMessage()); Assert.assertTrue(c.isOpen()); ((UndertowSession) session).forceClose(); Assert.assertEquals("CLOSED", ProgramaticErrorEndpoint.getMessage()); }
Example #18
Source File: WebsocketLauncher.java From java-sdk with Apache License 2.0 | 5 votes |
public static boolean startUp(BinanceDexClientEndpoint endpoint){ try { WebSocketContainer container = ContainerProvider.getWebSocketContainer(); container.setDefaultMaxBinaryMessageBufferSize(128000000); container.setDefaultMaxTextMessageBufferSize(128000000); container.connectToServer(endpoint,new URI(endpoint.getUrl())); return true; } catch (Exception e) { throw new RuntimeException(e); } }
Example #19
Source File: AbstractWebsocketClientEndpoint.java From alpaca-java with MIT License | 5 votes |
/** * Connect. * * @throws DeploymentException the deployment exception * @throws IOException Signals that an I/O exception has occurred. */ public void connect() throws DeploymentException, IOException { WebSocketContainer container = ContainerProvider.getWebSocketContainer(); LOGGER.info("Connecting to " + endpointURI); container.connectToServer(this, endpointURI); }
Example #20
Source File: TestWsWebSocketContainer.java From Tomcat7.0.67 with Apache License 2.0 | 5 votes |
private void doMaxMessageSize(String path, long size, boolean expectOpen) throws Exception { Tomcat tomcat = getTomcatInstance(); // No file system docBase required Context ctx = tomcat.addContext("", null); ctx.addApplicationListener(TesterEchoServer.Config.class.getName()); Tomcat.addServlet(ctx, "default", new DefaultServlet()); ctx.addServletMapping("/", "default"); tomcat.start(); WebSocketContainer wsContainer = ContainerProvider.getWebSocketContainer(); Session s = connectToEchoServer(wsContainer, new EndpointA(), path); StringBuilder msg = new StringBuilder(); for (long i = 0; i < size; i++) { msg.append('x'); } s.getBasicRemote().sendText(msg.toString()); // Wait for up to 5 seconds for session to close boolean open = s.isOpen(); int count = 0; while (open != expectOpen && count < 50) { Thread.sleep(100); count++; open = s.isOpen(); } Assert.assertEquals(Boolean.valueOf(expectOpen), Boolean.valueOf(s.isOpen())); }
Example #21
Source File: ProgramaticLazyEndpointTest.java From quarkus-http with Apache License 2.0 | 5 votes |
@org.junit.Test public void testStringOnMessage() throws Exception { SSLContext context = DefaultServer.getClientSSLContext(); ProgramaticClientEndpoint endpoint = new ProgramaticClientEndpoint(); ClientEndpointConfig clientEndpointConfig = ClientEndpointConfig.Builder.create().build(); //clientEndpointConfig.getUserProperties().put(DefaultWebSocketClientSslProvider.SSL_CONTEXT, context); ContainerProvider.getWebSocketContainer().connectToServer(endpoint, clientEndpointConfig, new URI("wss://" + DefaultServer.getHostAddress("default") + ":" + DefaultServer.getHostSSLPort("default") + "/foo")); Assert.assertEquals("Hello Stuart", endpoint.getResponses().poll(15, TimeUnit.SECONDS)); endpoint.session.close(); endpoint.closeLatch.await(10, TimeUnit.SECONDS); }
Example #22
Source File: WebsocketBasicAuthTestCase.java From quarkus-http with Apache License 2.0 | 5 votes |
@Test public void testAuthenticatedWebsocket() throws Exception { ProgramaticClientEndpoint endpoint = new ProgramaticClientEndpoint(); ClientEndpointConfig clientEndpointConfig = ClientEndpointConfig.Builder.create().configurator(new ClientConfigurator(){ @Override public void beforeRequest(Map<String, List<String>> headers) { headers.put(AUTHORIZATION.toString(), Collections.singletonList(BASIC + " " + FlexBase64.encodeString("user1:password1".getBytes(), false))); } }).build(); ContainerProvider.getWebSocketContainer().connectToServer(endpoint, clientEndpointConfig, new URI("ws://" + DefaultServer.getHostAddress("default") + ":" + DefaultServer.getHostPort("default") + "/servletContext/secured")); Assert.assertEquals("user1", endpoint.getResponses().poll(15, TimeUnit.SECONDS)); endpoint.session.close(); endpoint.closeLatch.await(10, TimeUnit.SECONDS); }
Example #23
Source File: TestPojoEndpointBase.java From Tomcat7.0.67 with Apache License 2.0 | 5 votes |
@Test public void testBug54716() throws Exception { TestUtil.generateMask(); // Set up utility classes Bug54716 server = new Bug54716(); SingletonConfigurator.setInstance(server); ServerConfigListener.setPojoClazz(Bug54716.class); Tomcat tomcat = getTomcatInstance(); // No file system docBase required Context ctx = tomcat.addContext("", null); ctx.addApplicationListener(ServerConfigListener.class.getName()); Tomcat.addServlet(ctx, "default", new DefaultServlet()); ctx.addServletMapping("/", "default"); WebSocketContainer wsContainer = ContainerProvider.getWebSocketContainer(); tomcat.start(); Client client = new Client(); URI uri = new URI("ws://localhost:" + getPort() + "/"); wsContainer.connectToServer(client, uri); // Server should close the connection after the exception on open. boolean closed = client.waitForClose(5); Assert.assertTrue("Server failed to close connection", closed); }
Example #24
Source File: TestWsWebSocketContainerGetOpenSessions.java From Tomcat8-Source-Read with MIT License | 5 votes |
private void doTest(Endpoint client1, Endpoint client2, String server1, String server2, int client1Count, int client2Count, int server1Count, int server2Count) throws Exception { Tracker.reset(); Tomcat tomcat = getTomcatInstance(); // No file system docBase required Context ctx = tomcat.addContext("", null); ctx.addApplicationListener(Config.class.getName()); Tomcat.addServlet(ctx, "default", new DefaultServlet()); ctx.addServletMappingDecoded("/", "default"); tomcat.start(); WebSocketContainer wsContainer = ContainerProvider.getWebSocketContainer(); Session sClient1Server1 = createSession(wsContainer, client1, "client1", server1); Session sClient1Server2 = createSession(wsContainer, client1, "client1", server2); Session sClient2Server1 = createSession(wsContainer, client2, "client2", server1); Session sClient2Server2 = createSession(wsContainer, client2, "client2", server2); int delayCount = 0; // Wait for up to 20s for this to complete. It should be a lot faster // but some CI systems get be slow at times. while (Tracker.getUpdateCount() < 8 && delayCount < 400) { Thread.sleep(50); delayCount++; } Assert.assertTrue(Tracker.checkRecord("client1", client1Count)); Assert.assertTrue(Tracker.checkRecord("client2", client2Count)); // Note: need to strip leading '/' from path Assert.assertTrue(Tracker.checkRecord(server1.substring(1), server1Count)); Assert.assertTrue(Tracker.checkRecord(server2.substring(1), server2Count)); sClient1Server1.close(); sClient1Server2.close(); sClient2Server1.close(); sClient2Server2.close(); }
Example #25
Source File: TestWsPingPongMessages.java From Tomcat8-Source-Read with MIT License | 5 votes |
@Test public void testPingPongMessages() throws Exception { Tomcat tomcat = getTomcatInstance(); // No file system docBase required Context ctx = tomcat.addContext("", null); ctx.addApplicationListener(TesterEchoServer.Config.class.getName()); Tomcat.addServlet(ctx, "default", new DefaultServlet()); ctx.addServletMappingDecoded("/", "default"); tomcat.start(); WebSocketContainer wsContainer = ContainerProvider .getWebSocketContainer(); Session wsSession = wsContainer.connectToServer( TesterProgrammaticEndpoint.class, ClientEndpointConfig.Builder .create().build(), new URI("ws://localhost:" + getPort() + TesterEchoServer.Config.PATH_ASYNC)); CountDownLatch latch = new CountDownLatch(1); TesterEndpoint tep = (TesterEndpoint) wsSession.getUserProperties() .get("endpoint"); tep.setLatch(latch); PongMessageHandler handler = new PongMessageHandler(latch); wsSession.addMessageHandler(handler); wsSession.getBasicRemote().sendPing(applicationData); boolean latchResult = handler.getLatch().await(10, TimeUnit.SECONDS); Assert.assertTrue(latchResult); Assert.assertArrayEquals(applicationData.array(), (handler.getMessages().peek()).getApplicationData().array()); }
Example #26
Source File: TestWsWebSocketContainer.java From Tomcat8-Source-Read with MIT License | 5 votes |
@Test public void testConnectToServerEndpoint() throws Exception { Tomcat tomcat = getTomcatInstance(); // No file system docBase required Context ctx = tomcat.addContext("", null); ctx.addApplicationListener(TesterEchoServer.Config.class.getName()); Tomcat.addServlet(ctx, "default", new DefaultServlet()); ctx.addServletMappingDecoded("/", "default"); tomcat.start(); WebSocketContainer wsContainer = ContainerProvider.getWebSocketContainer(); // Set this artificially small to trigger // https://bz.apache.org/bugzilla/show_bug.cgi?id=57054 wsContainer.setDefaultMaxBinaryMessageBufferSize(64); Session wsSession = wsContainer.connectToServer( TesterProgrammaticEndpoint.class, ClientEndpointConfig.Builder.create().build(), new URI("ws://" + getHostName() + ":" + getPort() + TesterEchoServer.Config.PATH_ASYNC)); CountDownLatch latch = new CountDownLatch(1); BasicText handler = new BasicText(latch); wsSession.addMessageHandler(handler); wsSession.getBasicRemote().sendText(MESSAGE_STRING_1); boolean latchResult = handler.getLatch().await(10, TimeUnit.SECONDS); Assert.assertTrue(latchResult); Queue<String> messages = handler.getMessages(); Assert.assertEquals(1, messages.size()); Assert.assertEquals(MESSAGE_STRING_1, messages.peek()); ((WsWebSocketContainer) wsContainer).destroy(); }
Example #27
Source File: BinaryEndpointTest.java From quarkus-http with Apache License 2.0 | 5 votes |
@org.junit.Test public void testBytesOnMessage() throws Exception { SSLContext context = DefaultServer.getClientSSLContext(); ProgramaticClientEndpoint endpoint = new ProgramaticClientEndpoint(); ClientEndpointConfig clientEndpointConfig = ClientEndpointConfig.Builder.create().build(); //clientEndpointConfig.getUserProperties().put(DefaultWebSocketClientSslProvider.SSL_CONTEXT, context); ContainerProvider.getWebSocketContainer().connectToServer(endpoint, clientEndpointConfig, new URI("wss://" + DefaultServer.getHostAddress("default") + ":" + DefaultServer.getHostSSLPort("default") + "/partial")); Assert.assertArrayEquals(bytes, endpoint.getResponses().poll(15, TimeUnit.SECONDS)); endpoint.session.close(); endpoint.closeLatch.await(10, TimeUnit.SECONDS); }
Example #28
Source File: TestWsPingPongMessages.java From Tomcat7.0.67 with Apache License 2.0 | 5 votes |
@Test public void testPingPongMessages() throws Exception { Tomcat tomcat = getTomcatInstance(); // No file system docBase required Context ctx = tomcat.addContext("", null); ctx.addApplicationListener(TesterEchoServer.Config.class.getName()); Tomcat.addServlet(ctx, "default", new DefaultServlet()); ctx.addServletMapping("/", "default"); tomcat.start(); WebSocketContainer wsContainer = ContainerProvider .getWebSocketContainer(); tomcat.start(); Session wsSession = wsContainer.connectToServer( TesterProgrammaticEndpoint.class, ClientEndpointConfig.Builder .create().build(), new URI("ws://localhost:" + getPort() + TesterEchoServer.Config.PATH_ASYNC)); CountDownLatch latch = new CountDownLatch(1); TesterEndpoint tep = (TesterEndpoint) wsSession.getUserProperties() .get("endpoint"); tep.setLatch(latch); PongMessageHandler handler = new PongMessageHandler(latch); wsSession.addMessageHandler(handler); wsSession.getBasicRemote().sendPing(applicationData); boolean latchResult = handler.getLatch().await(10, TimeUnit.SECONDS); Assert.assertTrue(latchResult); Assert.assertArrayEquals(applicationData.array(), (handler.getMessages().peek()).getApplicationData().array()); }
Example #29
Source File: WebsocketBasicAuthTestCase.java From quarkus-http with Apache License 2.0 | 5 votes |
@Test public void testWrappedRequest() throws Exception { ProgramaticClientEndpoint endpoint = new ProgramaticClientEndpoint(); ClientEndpointConfig clientEndpointConfig = ClientEndpointConfig.Builder.create().build(); ContainerProvider.getWebSocketContainer().connectToServer(endpoint, clientEndpointConfig, new URI("ws://" + DefaultServer.getHostAddress("default") + ":" + DefaultServer.getHostPort("default") + "/servletContext/wrapper")); Assert.assertEquals("wrapped", endpoint.getResponses().poll(15, TimeUnit.SECONDS)); endpoint.session.close(); endpoint.closeLatch.await(10, TimeUnit.SECONDS); }
Example #30
Source File: TestPojoEndpointBase.java From Tomcat7.0.67 with Apache License 2.0 | 5 votes |
@Test public void testOnOpenPojoMethod() throws Exception { // Set up utility classes OnOpenServerEndpoint server = new OnOpenServerEndpoint(); SingletonConfigurator.setInstance(server); ServerConfigListener.setPojoClazz(OnOpenServerEndpoint.class); Tomcat tomcat = getTomcatInstance(); // No file system docBase required Context ctx = tomcat.addContext("", null); ctx.addApplicationListener(ServerConfigListener.class.getName()); Tomcat.addServlet(ctx, "default", new DefaultServlet()); ctx.addServletMapping("/", "default"); WebSocketContainer wsContainer = ContainerProvider.getWebSocketContainer(); tomcat.start(); Client client = new Client(); URI uri = new URI("ws://localhost:" + getPort() + "/"); Session session = wsContainer.connectToServer(client, uri); client.waitForClose(5); Assert.assertTrue(session.isOpen()); }