io.vertx.core.http.WebSocket.handler()方法的使用及代码示例

x33g5p2x  于2022-02-03 转载在 其他  
字(11.1k)|赞(0)|评价(0)|浏览(248)

本文整理了Java中io.vertx.core.http.WebSocket.handler()方法的一些代码示例,展示了WebSocket.handler()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。WebSocket.handler()方法的具体详情如下:
包路径:io.vertx.core.http.WebSocket
类名称:WebSocket
方法名:handler

WebSocket.handler介绍

暂无

代码示例

代码示例来源:origin: vert-x3/vertx-examples

@Override
 public void start() throws Exception {
  HttpClient client = vertx.createHttpClient();

  client.websocket(8080, "localhost", "/some-uri", websocket -> {
   websocket.handler(data -> {
    System.out.println("Received data " + data.toString("ISO-8859-1"));
    client.close();
   });
   websocket.writeBinaryMessage(Buffer.buffer("Hello world"));
  });
 }
}

代码示例来源:origin: eclipse-vertx/vert.x

@Test
public void testWriteFromConnectHandlerFromAnotherThread() {
 Buffer expected = Buffer.buffer("AAA");
 server = vertx.createHttpServer(new HttpServerOptions().setPort(DEFAULT_HTTP_PORT));
 server.websocketHandler(ws -> {
  Thread t = new Thread() {
   @Override
   public void run() {
    ws.writeFrame(WebSocketFrame.binaryFrame(expected, true));
   }
  };
  t.start();
  while (t.getState() != Thread.State.BLOCKED) {
   Thread.yield();
  }
 });
 server.listen(onSuccess(server -> {
  client.websocket(DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTP_HOST, "/", ws -> {
   ws.handler(buff -> {
    assertEquals(buff, expected);
    testComplete();
   });
  });
 }));
 await();
}

代码示例来源:origin: eclipse-vertx/vert.x

@Test
public void httpClientWebsocketConnectionFailureHandlerShouldBeCalled() throws Exception {
 int port = 7867;
 HttpClient client = vertx.createHttpClient();
 client.websocket(port, "localhost", "", websocket -> {
  websocket.handler(data -> {
   fail("connection should not succeed");
  });
 }, throwable -> testComplete());
 await();
}

代码示例来源:origin: eclipse-vertx/vert.x

private void testRaceConditionWithWebsocketClient(Context context) {
 server = vertx.createHttpServer(new HttpServerOptions().setPort(DEFAULT_HTTP_PORT));
 // Handcrafted websocket handshake for sending a frame immediatly after the handshake
 server.requestHandler(req -> {
  NetSocket so = handshake(req);
  if (so != null) {
   so.write(Buffer.buffer(new byte[]{
    (byte) 0x82,
    0x05,
    0x68,
    0x65,
    0x6c,
    0x6c,
    0x6f,
   }));
  }
 });
 server.listen(ar -> {
  assertTrue(ar.succeeded());
  context.runOnContext(v -> {
   client.websocket(DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTP_HOST, "/", ws -> {
    ws.handler(buf -> {
     assertEquals("hello", buf.toString());
     testComplete();
    });
   });
  });
 });
 await();
}

代码示例来源:origin: eclipse-vertx/vert.x

private void testWriteMessage(int size, WebsocketVersion version) {
 String path = "/some/path";
 byte[] expected = TestUtils.randomByteArray(size);
 server = vertx.createHttpServer(new HttpServerOptions().setPort(DEFAULT_HTTP_PORT)).websocketHandler(ws -> {
  ws.writeBinaryMessage(Buffer.buffer(expected));
  ws.close();
 });
 server.listen(ar -> {
  assertTrue(ar.succeeded());
  client.websocket(DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTP_HOST, path, null, version, ws -> {
   Buffer actual = Buffer.buffer();
   ws.handler(actual::appendBuffer);
   ws.closeHandler(v -> {
    assertArrayEquals(expected, actual.getBytes(0, actual.length()));
    testComplete();
   });
  });
 });
 await();
}

代码示例来源:origin: eclipse-vertx/vert.x

handler(ws -> {
 Buffer buff = Buffer.buffer();
 ws.handler(b -> {
  buff.appendBuffer(b);
 });

代码示例来源:origin: eclipse-vertx/vert.x

@Test
// Let's manually handle the websocket handshake and write a frame to the client
public void testHandleWSManually() throws Exception {
 String path = "/some/path";
 String message = "here is some text data";
 server = vertx.createHttpServer(new HttpServerOptions().setPort(DEFAULT_HTTP_PORT)).requestHandler(req -> {
  NetSocket sock = getUpgradedNetSocket(req, path);
  // Let's write a Text frame raw
  Buffer buff = Buffer.buffer();
  buff.appendByte((byte)129); // Text frame
  buff.appendByte((byte)message.length());
  buff.appendString(message);
  sock.write(buff);
 });
 server.listen(ar -> {
  assertTrue(ar.succeeded());
  client.websocketStream(DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTP_HOST, path).
    handler(ws -> {
     ws.handler(buff -> {
      assertEquals(message, buff.toString("UTF-8"));
      testComplete();
     });
    });
 });
 await();
}

代码示例来源:origin: eclipse-vertx/vert.x

@Test
public void testRaceConditionWithWebsocketClientWorker2() throws Exception {
 int size = getOptions().getWorkerPoolSize() - 4;
 List<Context> workers = createWorkers(size + 1);
 server = vertx.createHttpServer(new HttpServerOptions().setPort(DEFAULT_HTTP_PORT));
 server.websocketHandler(ws -> {
  ws.write(Buffer.buffer("hello"));
 });
 server.listen(ar -> {
  assertTrue(ar.succeeded());
  workers.get(0).runOnContext(v -> {
   ReadStream<WebSocket> webSocketStream = client.websocketStream(DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTP_HOST, "/");
   webSocketStream.handler(ws -> {
    ws.handler(buf -> {
     assertEquals("hello", buf.toString());
     testComplete();
    });
   });
  });
 });
 await();
}

代码示例来源:origin: eclipse-vertx/vert.x

private void testWriteFromConnectHandler(WebsocketVersion version) throws Exception {
 String path = "/some/path";
 Buffer buff = Buffer.buffer("AAA");
 server = vertx.createHttpServer(new HttpServerOptions().setPort(DEFAULT_HTTP_PORT)).websocketHandler(ws -> {
  assertEquals(path, ws.path());
  ws.writeFrame(WebSocketFrame.binaryFrame(buff, true));
 });
 server.listen(ar -> {
  assertTrue(ar.succeeded());
  client.websocket(DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTP_HOST, path, null, version, ws -> {
   Buffer received = Buffer.buffer();
   ws.handler(data -> {
    received.appendBuffer(data);
    if (received.length() == buff.length()) {
     assertEquals(buff, received);
     ws.close();
     testComplete();
    }
   });
  });
 });
 await();
}

代码示例来源:origin: eclipse-vertx/vert.x

stream.resume();
client.websocket(DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTP_HOST, "/some/path", ws -> {
 ws.handler(buffer -> {
  assertEquals("whatever", buffer.toString("UTF-8"));
  ws.closeHandler(v2 -> {

代码示例来源:origin: eclipse-vertx/vert.x

@Test
public void testClearClientHandlersOnEnd() {
 String path = "/some/path";
 server = vertx.createHttpServer(new HttpServerOptions().setPort(DEFAULT_HTTP_PORT)).websocketHandler(WebSocketBase::close);
 server.listen(ar -> {
  assertTrue(ar.succeeded());
  client.websocketStream(DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTP_HOST, path, null).
    handler(ws -> {
     ws.endHandler(v -> {
      try {
       ws.endHandler(null);
       ws.exceptionHandler(null);
       ws.handler(null);
      } catch (Exception e) {
       fail("Was expecting to set to null the handlers when the socket is closed");
       return;
      }
      testComplete();
     });
    });
 });
 await();
}

代码示例来源:origin: eclipse-vertx/vert.x

@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();
}

代码示例来源:origin: eclipse-vertx/vert.x

@Test
public void testWebSocket() {
 server = vertx.createHttpServer();
 server.websocketHandler(ws -> {
  ws.write(Buffer.buffer("wibble"));
  ws.handler(buff -> ws.close());
 });
 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 -> {
   FakeHttpClientMetrics metrics = FakeMetricsBase.getMetrics(client);
   WebSocketMetric metric = metrics.getMetric(ws);
   assertNotNull(metric);
   assertNotNull(metric.soMetric);
   ws.closeHandler(closed -> {
    assertNull(metrics.getMetric(ws));
    testComplete();
   });
   ws.handler(ws::write);
  });
 });
 await();
}

代码示例来源:origin: eclipse-vertx/vert.x

@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();
}

代码示例来源:origin: eclipse-vertx/vert.x

ws.handler(data -> {
 received.appendBuffer(data);
 if (received.length() == bsize * sends) {

代码示例来源:origin: eclipse-vertx/vert.x

client.websocket(DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, path, ws -> {
  final Buffer received = Buffer.buffer();
  ws.handler(data -> {
    received.appendBuffer(data);
    if (received.length() == buff.length()) {

代码示例来源:origin: eclipse-vertx/vert.x

private void testValidSubProtocol(WebsocketVersion version) throws Exception {
 String path = "/some/path";
 String clientSubProtocols = "clientproto,commonproto";
 String serverSubProtocols = "serverproto,commonproto";
 Buffer buff = Buffer.buffer("AAA");
 server = vertx.createHttpServer(new HttpServerOptions().setPort(DEFAULT_HTTP_PORT).setWebsocketSubProtocols(serverSubProtocols)).websocketHandler(ws -> {
  assertEquals(path, ws.path());
  assertNull(ws.subProtocol());
  ws.accept();
  assertEquals("commonproto", ws.subProtocol());
  ws.writeFrame(WebSocketFrame.binaryFrame(buff, true));
 });
 server.listen(ar -> {
  assertTrue(ar.succeeded());
  client.websocket(DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTP_HOST, path, null, version, clientSubProtocols, ws -> {
   assertEquals("commonproto", ws.subProtocol());
   final Buffer received = Buffer.buffer();
   ws.handler(data -> {
    received.appendBuffer(data);
    if (received.length() == buff.length()) {
     assertEquals(buff, received);
     ws.close();
     testComplete();
    }
   });
  });
 });
 await();
}

代码示例来源:origin: eclipse-vertx/vert.x

client.websocket(DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, path, ws -> {
 final Buffer received = Buffer.buffer();
 ws.handler(data -> {
  received.appendBuffer(data);
  if (received.length() == buff.length()) {

代码示例来源:origin: eclipse-vertx/vert.x

@Test
public void testClientWebsocketWithHttp2Client() throws Exception {
 client.close();
 client = vertx.createHttpClient(new HttpClientOptions().setHttp2ClearTextUpgrade(false).setProtocolVersion(HttpVersion.HTTP_2));
 server = vertx.createHttpServer(new HttpServerOptions().setPort(DEFAULT_HTTP_PORT));
 server.requestHandler(req -> {
  req.response().setChunked(true).write("connect");
 });
 server.websocketHandler(ws -> {
  ws.writeFinalTextFrame("ok");
 });
 server.listen(onSuccess(server -> {
  client.getNow(DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTP_HOST, "/", resp -> {
   client.websocket(DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTP_HOST, "/", ws -> {
    ws.handler(buff -> {
     assertEquals("ok", buff.toString());
     testComplete();
    });
   });
  });
 }));
 await();
}

代码示例来源:origin: eclipse-vertx/vert.x

ws.handler(data -> {
  received.appendBuffer(data);
  if (received.length() == buff.length()) {

相关文章