本文整理了Java中io.vertx.core.http.HttpServer.websocketHandler()
方法的一些代码示例,展示了HttpServer.websocketHandler()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。HttpServer.websocketHandler()
方法的具体详情如下:
包路径:io.vertx.core.http.HttpServer
类名称:HttpServer
方法名:websocketHandler
暂无
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testSharedServersRoundRobinWithOtherServerRunningOnDifferentPort() throws Exception {
// Have a server running on a different port to make sure it doesn't interact
CountDownLatch latch = new CountDownLatch(1);
HttpServer theServer = vertx.createHttpServer(new HttpServerOptions().setPort(4321));
theServer.websocketHandler(ws -> {
fail("Should not connect");
}).listen(ar -> {
if (ar.succeeded()) {
latch.countDown();
} else {
fail("Failed to bind server");
}
});
awaitLatch(latch);
testSharedServersRoundRobin();
}
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testSetHandlersAfterListening() throws Exception {
server.requestHandler(noOpHandler());
server.listen(onSuccess(s -> {
assertIllegalStateException(() -> server.requestHandler(noOpHandler()));
assertIllegalStateException(() -> server.websocketHandler(noOpHandler()));
testComplete();
}));
await();
}
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testSetHandlersAfterListening2() throws Exception {
server.requestHandler(noOpHandler());
server.listen(onSuccess(v -> testComplete()));
assertIllegalStateException(() -> server.requestHandler(noOpHandler()));
assertIllegalStateException(() -> server.websocketHandler(noOpHandler()));
await();
}
代码示例来源:origin: eclipse-vertx/vert.x
private void testServerWebsocketPingPongCheck(int maxFrameSize, Consumer<ServerWebSocket> check) {
server = vertx.createHttpServer(new HttpServerOptions().setIdleTimeout(1).setPort(DEFAULT_HTTP_PORT).setHost(HttpTestBase.DEFAULT_HTTP_HOST).setMaxWebsocketFrameSize(maxFrameSize));
server.websocketHandler(ws -> {
ws.pongHandler(buff -> fail());
check.accept(ws);
}).listen(onSuccess(v -> {
client.websocket(DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTP_HOST, "/", ws -> {});
}));
await();
}
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testServerWebsocketIdleTimeout() {
server.close();
server = vertx.createHttpServer(new HttpServerOptions().setIdleTimeout(1).setPort(DEFAULT_HTTP_PORT).setHost(DEFAULT_HTTP_HOST));
server.websocketHandler(ws -> {}).listen(ar -> {
assertTrue(ar.succeeded());
client.websocket(DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, "/", ws -> {
ws.closeHandler(v -> testComplete());
});
});
await();
}
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testNoRequestHandler() throws Exception {
CountDownLatch latch = new CountDownLatch(1);
vertx.createHttpServer()
.websocketHandler(ws -> fail())
.listen(DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, onSuccess(v -> latch.countDown()));
awaitLatch(latch);
client.getNow(DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, "/", onSuccess(resp -> {
resp.endHandler(v -> {
assertEquals(400, resp.statusCode());
testComplete();
});
}));
await();
}
}
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testReportProtocolViolationOnServer() {
server = vertx.createHttpServer(new HttpServerOptions().setPort(DEFAULT_HTTP_PORT)).websocketHandler(ws -> {
AtomicReference<Throwable> failure = new AtomicReference<>();
ws.closeHandler(v -> {
assertNotNull(failure.get());
testComplete();
});
ws.exceptionHandler(failure::set);
});
server.listen(ar -> {
assertTrue(ar.succeeded());
handshake(sock -> {
// Let's write an invalid frame
Buffer buff = Buffer.buffer();
buff.appendByte((byte)(0x8)).appendByte((byte)0); // Violates protocol with V13 (final control frame)
sock.write(buff);
});
});
await();
}
代码示例来源:origin: eclipse-vertx/vert.x
private SocketMessages testWriteTextMessages(List<String> messagesToSend, WebsocketVersion version) {
String path = "/some/path";
server = vertx.createHttpServer(new HttpServerOptions().setPort(DEFAULT_HTTP_PORT)).websocketHandler(ws -> {
for (String messageToSend : messagesToSend) {
ws.writeTextMessage(messageToSend);
}
ws.close();
});
List<String> receivedMessages = new ArrayList<>();
List<Throwable> receivedExceptions = new ArrayList<>();
server.listen(ar -> {
assertTrue(ar.succeeded());
client.websocket(DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTP_HOST, path, null, version, ws -> {
ws.textMessageHandler(receivedMessages::add);
ws.exceptionHandler(receivedExceptions::add);
ws.closeHandler(v -> testComplete());
});
});
await();
return new SocketMessages(receivedMessages, receivedExceptions);
}
代码示例来源:origin: eclipse-vertx/vert.x
private void testInvalidSubProtocol(WebsocketVersion version) throws Exception {
String path = "/some/path";
String subProtocol = "myprotocol";
server = vertx.createHttpServer(new HttpServerOptions().setPort(DEFAULT_HTTP_PORT).setWebsocketSubProtocols("invalid")).websocketHandler(ws -> {
});
server.listen(onSuccess(ar -> {
client.websocketStream(DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTP_HOST, path, null, version, subProtocol).
exceptionHandler(t -> {
// Should fail
testComplete();
}).
handler(ws -> {
});
}));
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
@Test
public void testClientWebsocketIdleTimeout() {
client.close();
client = vertx.createHttpClient(new HttpClientOptions().setIdleTimeout(1));
server.websocketHandler(ws -> {}).listen(ar -> {
client.websocket(DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, "/", ws -> {
ws.closeHandler(v -> testComplete());
});
});
await();
}
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testServerWebsocketPingPong() {
server = vertx.createHttpServer(new HttpServerOptions().setIdleTimeout(1).setPort(DEFAULT_HTTP_PORT).setHost(HttpTestBase.DEFAULT_HTTP_HOST));
server.websocketHandler(ws -> {
ws.pongHandler(buff -> {
assertEquals("ping", buff.toString());
testComplete();
});
ws.writePing(Buffer.buffer("ping"));
}).listen(onSuccess(v -> {
client.websocket(DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTP_HOST, "/", ws -> {});
}));
await();
}
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testClientWebsocketPingPong() {
server = vertx.createHttpServer(new HttpServerOptions().setIdleTimeout(1).setPort(DEFAULT_HTTP_PORT).setHost(HttpTestBase.DEFAULT_HTTP_HOST));
server.websocketHandler(ws -> {
}).listen(onSuccess(v -> {
client.websocket(DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTP_HOST, "/", ws -> {
ws.pongHandler( pong -> {
assertEquals("ping", pong.toString());
testComplete();
});
ws.writePing(Buffer.buffer("ping"));
});
}));
await();
}
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testClientWebsocketSendPingExceeds125Bytes() {
//Netty will prevent us from encoding a pingBody greater than 126 bytes by silently throwing an error in the background
String pingBody = randomAlphaString(126);
Integer maxFrameSize = 256;
server = vertx.createHttpServer(new HttpServerOptions().setIdleTimeout(1).setPort(DEFAULT_HTTP_PORT).setHost(HttpTestBase.DEFAULT_HTTP_HOST).setMaxWebsocketFrameSize(maxFrameSize));
server.websocketHandler(ws -> { }).listen(onSuccess(v -> {
client.websocket(DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTP_HOST, "/", ws -> {
ws.pongHandler(buffer -> fail());
ws.writeFrame(WebSocketFrame.pingFrame(Buffer.buffer(pingBody)));
vertx.setTimer(2000, id -> testComplete());
});
}));
await();
}
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testCloseStatusCodeFromServer() throws InterruptedException {
CountDownLatch latch = new CountDownLatch(2);
client = vertx.createHttpClient();
server = vertx.createHttpServer(new HttpServerOptions().setPort(DEFAULT_HTTP_PORT))
.websocketHandler(socket -> {
socket.closeHandler(a -> {
latch.countDown();
});
vertx.setTimer(1000, (ar) -> socket.close());
})
.listen(ar -> {
client.websocket(DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTP_HOST, "/", ws -> {
ws.frameHandler(frame -> {
assertEquals(1000, frame.binaryData().getByteBuf().getShort(0));
assertEquals(1000, frame.closeStatusCode());
assertNull(frame.closeReason());
latch.countDown();
});
});
});
awaitLatch(latch);
}
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testServerWebsocketSendPingExceeds125Bytes() {
//Netty will prevent us from encoding a pingBody greater than 126 bytes by silently throwing an error in the background
String pingBody = randomAlphaString(126);
Integer maxFrameSize = 256;
server = vertx.createHttpServer(new HttpServerOptions().setIdleTimeout(1).setPort(DEFAULT_HTTP_PORT).setHost(HttpTestBase.DEFAULT_HTTP_HOST).setMaxWebsocketFrameSize(maxFrameSize));
server.websocketHandler(ws -> {
ws.pongHandler(buff -> fail());
ws.writeFrame(WebSocketFrame.pingFrame(Buffer.buffer(pingBody)));
vertx.setTimer(2000, id -> testComplete());
}).listen(onSuccess(v -> {
client.websocket(DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTP_HOST, "/", ws -> {});
}));
await();
}
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testClientWebsocketSendPongExceeds125Bytes() {
//Netty will prevent us from encoding a pingBody greater than 126 bytes by silently throwing an error in the background
String pingBody = randomAlphaString(126);
Integer maxFrameSize = 256;
server = vertx.createHttpServer(new HttpServerOptions().setIdleTimeout(1).setPort(DEFAULT_HTTP_PORT).setHost(HttpTestBase.DEFAULT_HTTP_HOST).setMaxWebsocketFrameSize(maxFrameSize));
server.websocketHandler(ws -> {
ws.pongHandler(buff -> fail());
vertx.setTimer(2000, id -> testComplete());
}).listen(onSuccess(v -> {
client.websocket(DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTP_HOST, "/", ws -> {
ws.writeFrame(WebSocketFrame.pongFrame(Buffer.buffer(pingBody)));
});
}));
await();
}
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testServerWebsocketSendPongExceeds125Bytes() {
//Netty will prevent us from encoding a pingBody greater than 126 bytes by silently throwing an error in the background
String pingBody = randomAlphaString(126);
Integer maxFrameSize = 256;
server = vertx.createHttpServer(new HttpServerOptions().setIdleTimeout(1).setPort(DEFAULT_HTTP_PORT).setHost(HttpTestBase.DEFAULT_HTTP_HOST).setMaxWebsocketFrameSize(maxFrameSize));
server.websocketHandler(ws -> {
ws.writeFrame(WebSocketFrame.pongFrame(Buffer.buffer(pingBody)));
}).listen(onSuccess(v -> {
client.websocket(DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTP_HOST, "/", ws -> {
ws.pongHandler(buff -> fail());
vertx.setTimer(2000, id -> testComplete());
});
}));
await();
}
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testRequestEntityTooLarge() {
String path = "/some/path";
server = vertx.createHttpServer(new HttpServerOptions().setPort(DEFAULT_HTTP_PORT)).websocketHandler(ws -> fail());
server.listen(onSuccess(ar -> {
client.get(DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTPS_HOST, path, onSuccess(resp -> {
assertEquals(413, resp.statusCode());
resp.request().connection().closeHandler(v -> {
testComplete();
});
})).putHeader("Upgrade", "Websocket")
.putHeader("Connection", "Upgrade")
.end(TestUtils.randomBuffer(8192 + 1));
}));
await();
}
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testClearClientSslOptions() {
SelfSignedCertificate certificate = SelfSignedCertificate.create();
HttpServerOptions serverOptions = new HttpServerOptions().setPort(HttpTestBase.DEFAULT_HTTPS_PORT)
.setSsl(true)
.setKeyCertOptions(certificate.keyCertOptions());
HttpClientOptions clientOptions = new HttpClientOptions()
.setTrustAll(true)
.setVerifyHost(false);
client = vertx.createHttpClient(clientOptions);
server = vertx.createHttpServer(serverOptions).websocketHandler(WebSocketBase::close).listen(onSuccess(server -> {
RequestOptions requestOptions = new RequestOptions().setPort(HttpTestBase.DEFAULT_HTTPS_PORT).setSsl(true);
client.websocket(requestOptions, ws -> {
ws.closeHandler(v -> {
testComplete();
});
});
}));
await();
}
内容来源于网络,如有侵权,请联系作者删除!