ws.close(); }); ws.write(Buffer.buffer("hello")); }); });
testComplete(); }); ws.write(Buffer.buffer("foo")); }); });
ws.close(); }); ws.write(Buffer.buffer("hello")); }); await();
@Test public void testServerWebSocket() { server = vertx.createHttpServer(); server.websocketHandler(ws -> { FakeHttpServerMetrics metrics = FakeMetricsBase.getMetrics(server); WebSocketMetric metric = metrics.getMetric(ws); assertNotNull(metric); assertNotNull(metric.soMetric); ws.handler(ws::write); ws.closeHandler(closed -> { assertNull(metrics.getMetric(ws)); testComplete(); }); }); server.listen(HttpTestBase.DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTP_HOST, ar -> { assertTrue(ar.succeeded()); client = vertx.createHttpClient(); client.websocket(HttpTestBase.DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTP_HOST, "/", ws -> { ws.write(Buffer.buffer("wibble")); ws.handler(buff -> ws.close()); }); }); await(); }
@Test public void testServerWebSocketUpgrade() { server = vertx.createHttpServer(); server.requestHandler(req -> { FakeHttpServerMetrics metrics = FakeMetricsBase.getMetrics(server); assertNotNull(metrics.getMetric(req)); ServerWebSocket ws = req.upgrade(); assertNull(metrics.getMetric(req)); WebSocketMetric metric = metrics.getMetric(ws); assertNotNull(metric); assertNotNull(metric.soMetric); ws.handler(buffer -> ws.write(buffer)); ws.closeHandler(closed -> { WebSocketMetric a = metrics.getMetric(ws); assertNull(a); testComplete(); }); }); server.listen(HttpTestBase.DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTP_HOST, ar -> { assertTrue(ar.succeeded()); client = vertx.createHttpClient(); client.websocket(HttpTestBase.DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTP_HOST, "/", ws -> { ws.write(Buffer.buffer("wibble")); ws.handler(buff -> { ws.close(); }); }); }); await(); }
for (int i = 0; i < sends; i++) { Buffer buff = Buffer.buffer(TestUtils.randomByteArray(bsize)); ws.write(buff); sent.appendBuffer(buff);
ws.close(); }); ws.write(Buffer.buffer("hello")); }); });
ws.close(); }); ws.write(Buffer.buffer("hello")); }); await();
testComplete(); }); ws.write(Buffer.buffer("foo")); }); });
@Test public void testServerWebSocket() { server = vertx.createHttpServer(); server.websocketHandler(ws -> { FakeHttpServerMetrics metrics = FakeMetricsBase.getMetrics(server); WebSocketMetric metric = metrics.getMetric(ws); assertNotNull(metric); assertNotNull(metric.soMetric); ws.handler(ws::write); ws.closeHandler(closed -> { assertNull(metrics.getMetric(ws)); testComplete(); }); }); server.listen(HttpTestBase.DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTP_HOST, ar -> { assertTrue(ar.succeeded()); client = vertx.createHttpClient(); client.websocket(HttpTestBase.DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTP_HOST, "/", ws -> { ws.write(Buffer.buffer("wibble")); ws.handler(buff -> ws.close()); }); }); await(); }
public io.vertx.rxjava.core.http.WebSocket write(io.vertx.rxjava.core.buffer.Buffer data) { delegate.write(data.getDelegate()); return this; }
public io.vertx.rxjava.core.http.WebSocket write(io.vertx.rxjava.core.buffer.Buffer data) { delegate.write(data.getDelegate()); return this; }
@Test public void testServerWebSocketUpgrade() { server = vertx.createHttpServer(); server.requestHandler(req -> { FakeHttpServerMetrics metrics = FakeMetricsBase.getMetrics(server); assertNotNull(metrics.getMetric(req)); ServerWebSocket ws = req.upgrade(); assertNull(metrics.getMetric(req)); WebSocketMetric metric = metrics.getMetric(ws); assertNotNull(metric); assertNotNull(metric.soMetric); ws.handler(buffer -> ws.write(buffer)); ws.closeHandler(closed -> { WebSocketMetric a = metrics.getMetric(ws); assertNull(a); testComplete(); }); }); server.listen(HttpTestBase.DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTP_HOST, ar -> { assertTrue(ar.succeeded()); client = vertx.createHttpClient(); client.websocket(HttpTestBase.DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTP_HOST, "/", ws -> { ws.write(Buffer.buffer("wibble")); ws.handler(buff -> { ws.close(); }); }); }); await(); }
for (int i = 0; i < sends; i++) { Buffer buff = Buffer.buffer(TestUtils.randomByteArray(bsize)); ws.write(buff); sent.appendBuffer(buff);
@Override public void handle(WebSocket webSocket) { connecting = false; connected = true; logger.info("Bridge Client - connected to server [" + remoteBridgeHost + ":" + remoteBridgePort + "]"); webSocket.write(Buffer.buffer( tenant + "\n" )); webSocket.write(Buffer.buffer( "START SESSION" + "\n" )); webSocket.pause(); final EventBusWebsocketBridge ebnb = new EventBusWebsocketBridge(webSocket, vertx.eventBus(), address); webSocket.closeHandler(aVoid -> { logger.error("Bridge Client - closed connection from server [" + remoteBridgeHost + ":" + remoteBridgePort + "]" + webSocket.textHandlerID()); ebnb.stop(); connected = false; }); webSocket.exceptionHandler(throwable -> { logger.error("Bridge Client - Exception: " + throwable.getMessage(), throwable); ebnb.stop(); connected = false; }); ebnb.setTenant(tenant); ebnb.start(); logger.info("Bridge Client - bridgeUUID: "+ ebnb.getBridgeUUID()); webSocket.resume(); }
@Test public void websocketServiceCloseConnectionOnUnrecoverableError(final TestContext context) { final Async async = context.async(); final byte[] bigMessage = new byte[HttpServerOptions.DEFAULT_MAX_WEBSOCKET_MESSAGE_SIZE + 1]; Arrays.fill(bigMessage, (byte) 1); httpClient.websocket( "/", webSocket -> { webSocket.write(Buffer.buffer(bigMessage)); webSocket.closeHandler(v -> async.complete()); }); async.awaitSuccess(VERTX_AWAIT_TIMEOUT_MILLIS); }
@Test public void websocketServiceExecutesHandlerOnMessage(final TestContext context) { final Async async = context.async(); final String request = "{\"id\": 1, \"method\": \"eth_subscribe\", \"params\": [\"syncing\"]}"; final String expectedResponse = "{\"jsonrpc\":\"2.0\",\"id\":1,\"result\":\"0x1\"}"; httpClient.websocket( "/", webSocket -> { webSocket.write(Buffer.buffer(request)); webSocket.handler( buffer -> { context.assertEquals(expectedResponse, buffer.toString()); async.complete(); }); }); async.awaitSuccess(VERTX_AWAIT_TIMEOUT_MILLIS); }
"/", ws -> { ws.write( Buffer.buffer( "{\"id\": 1, \"method\": \"eth_subscribe\", \"params\": [\"syncing\"]}"));