本文整理了Java中io.vertx.core.http.HttpServer.connectionHandler()
方法的一些代码示例,展示了HttpServer.connectionHandler()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。HttpServer.connectionHandler()
方法的具体详情如下:
包路径:io.vertx.core.http.HttpServer
类名称:HttpServer
方法名:connectionHandler
[英]Set a connection handler for the server.
[中]设置服务器的连接处理程序。
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testServerConnectionHandler() throws Exception {
AtomicInteger status = new AtomicInteger();
AtomicReference<HttpConnection> connRef = new AtomicReference<>();
server.connectionHandler(conn -> {
assertEquals(0, status.getAndIncrement());
assertNull(connRef.getAndSet(conn));
});
server.requestHandler(req -> {
assertEquals(1, status.getAndIncrement());
assertSame(connRef.get(), req.connection());
req.response().end();
});
CountDownLatch listenLatch = new CountDownLatch(1);
server.listen(onSuccess(s -> listenLatch.countDown()));
awaitLatch(listenLatch);
client.getNow(DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, "/somepath", resp -> {
testComplete();
});
await();
}
代码示例来源:origin: eclipse-vertx/vert.x
int totalRequests = maxRequests + maxConcurrency;
Set<HttpConnection> serverConns = new HashSet<>();
server.connectionHandler(conn -> {
serverConns.add(conn);
assertTrue(serverConns.size() <= poolSize);
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testTooLongContentInHttpServerRequest() throws Exception {
server.requestHandler(req -> {
req.response().end();
});
server.connectionHandler(conn -> {
conn.exceptionHandler(error -> {
assertEquals(IllegalArgumentException.class, error.getClass());
testComplete();
});
});
startServer();
NetClient client = vertx.createNetClient();
try {
client.connect(DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, onSuccess(so -> {
so.write("POST / HTTP/1.1\r\nContent-Length: 4\r\n\r\ntoolong\r\n");
}));
await();
} finally {
client.close();
}
}
@Test
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testServerConnectionExceptionHandler() throws Exception {
server.connectionHandler(conn -> {
conn.exceptionHandler(err -> {
assertTrue(err instanceof TooLongFrameException);
testComplete();
});
});
server.requestHandler(req -> {
req.response().end();
});
CountDownLatch listenLatch = new CountDownLatch(1);
server.listen(onSuccess(s -> listenLatch.countDown()));
awaitLatch(listenLatch);
client.close();
client = vertx.createHttpClient(new HttpClientOptions().setMaxPoolSize(1));
client.getNow(DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, "/somepath", resp1 -> {
HttpClientRequest req = client.post(DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, "/somepath", resp2 -> {
});
req.putHeader("the_header", TestUtils.randomAlphaString(10000));
req.sendHead();
});
await();
}
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testServerShutdownConnection() throws Exception {
waitFor(2);
server.connectionHandler(HttpConnection::shutdown);
server.requestHandler(req -> fail());
startServer();
AtomicInteger count = new AtomicInteger();
HttpClientRequest req1 = client.get(DEFAULT_HTTPS_PORT, DEFAULT_HTTPS_HOST, "/somepath",
onFailure(err -> {
if (count.getAndIncrement() == 0) {
complete();
}
}));
req1.connectionHandler(conn -> {
Context ctx = Vertx.currentContext();
conn.goAwayHandler(ga -> {
assertOnIOContext(ctx);
complete();
});
});
req1.end();
await();
}
代码示例来源:origin: eclipse-vertx/vert.x
waitFor(2);
AtomicInteger serverStatus = new AtomicInteger();
server.connectionHandler(conn -> {
if (serverStatus.getAndIncrement() == 0) {
conn.goAwayHandler(ga -> {
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testSendPing() throws Exception {
waitFor(2);
Buffer expected = TestUtils.randomBuffer(8);
Context ctx = vertx.getOrCreateContext();
server.close();
server.connectionHandler(conn -> {
conn.pingHandler(data -> {
assertEquals(expected, data);
complete();
});
});
server.requestHandler(req -> {});
startServer(ctx);
HttpClientRequest req = client.get(DEFAULT_HTTPS_PORT, DEFAULT_HTTPS_HOST, "/somepath", resp -> {
});
req.connectionHandler(conn -> {
conn.ping(expected, ar -> {
assertTrue(ar.succeeded());
Buffer buff = ar.result();
assertEquals(expected, buff);
complete();
});
});
req.end();
await();
}
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testInitialMaxConcurrentStreamZero() throws Exception {
server.close();
server = vertx.createHttpServer(createBaseServerOptions().setInitialSettings(new Http2Settings().setMaxConcurrentStreams(0)));
server.requestHandler(req -> {
req.response().end();
});
server.connectionHandler(conn -> {
vertx.setTimer(500, id -> {
conn.updateSettings(new Http2Settings().setMaxConcurrentStreams(10));
});
});
startServer();
client.get(DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, DEFAULT_TEST_URI, resp -> {
testComplete();
}).connectionHandler(conn -> {
assertEquals(10, conn.remoteSettings().getMaxConcurrentStreams());
}).setTimeout(10000).exceptionHandler(this::fail).end();
await();
}
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testReceivePing() throws Exception {
Buffer expected = TestUtils.randomBuffer(8);
Context ctx = vertx.getOrCreateContext();
server.close();
server.connectionHandler(conn -> {
conn.ping(expected, ar -> {
});
});
server.requestHandler(req -> {});
startServer(ctx);
HttpClientRequest req = client.get(DEFAULT_HTTPS_PORT, DEFAULT_HTTPS_HOST, "/somepath", resp -> {
});
req.connectionHandler(conn -> {
conn.pingHandler(data -> {
assertEquals(expected, data);
complete();
});
});
req.end();
await();
}
代码示例来源:origin: eclipse-vertx/vert.x
server = vertx.createHttpServer(serverOptions);
Context otherContext = vertx.getOrCreateContext();
server.connectionHandler(conn -> {
otherContext.runOnContext(v -> {
conn.updateSettings(expectedSettings);
代码示例来源:origin: eclipse-vertx/vert.x
server.connectionHandler(conn -> complete());
AtomicInteger count = new AtomicInteger();
server.exceptionHandler(err -> {
代码示例来源:origin: eclipse-vertx/vert.x
req.response().end();
});
}).connectionHandler(conn -> {
io.vertx.core.http.Http2Settings initialRemoteSettings = conn.remoteSettings();
assertEquals(initialSettings.isPushEnabled(), initialRemoteSettings.isPushEnabled());
代码示例来源:origin: io.vertx/vertx-core
@Test
public void testServerConnectionHandler() throws Exception {
AtomicInteger status = new AtomicInteger();
AtomicReference<HttpConnection> connRef = new AtomicReference<>();
server.connectionHandler(conn -> {
assertEquals(0, status.getAndIncrement());
assertNull(connRef.getAndSet(conn));
});
server.requestHandler(req -> {
assertEquals(1, status.getAndIncrement());
assertSame(connRef.get(), req.connection());
req.response().end();
});
CountDownLatch listenLatch = new CountDownLatch(1);
server.listen(onSuccess(s -> listenLatch.countDown()));
awaitLatch(listenLatch);
client.getNow(DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, "/somepath", resp -> {
testComplete();
});
await();
}
代码示例来源:origin: io.vertx/vertx-core
@Test
public void testTooLongContentInHttpServerRequest() throws Exception {
server.requestHandler(req -> {
req.response().end();
});
server.connectionHandler(conn -> {
conn.exceptionHandler(error -> {
assertEquals(IllegalArgumentException.class, error.getClass());
testComplete();
});
});
startServer();
NetClient client = vertx.createNetClient();
try {
client.connect(DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, onSuccess(so -> {
so.write("POST / HTTP/1.1\r\nContent-Length: 4\r\n\r\ntoolong\r\n");
}));
await();
} finally {
client.close();
}
}
@Test
代码示例来源:origin: io.vertx/vertx-core
@Test
public void testServerConnectionExceptionHandler() throws Exception {
server.connectionHandler(conn -> {
conn.exceptionHandler(err -> {
assertTrue(err instanceof TooLongFrameException);
testComplete();
});
});
server.requestHandler(req -> {
req.response().end();
});
CountDownLatch listenLatch = new CountDownLatch(1);
server.listen(onSuccess(s -> listenLatch.countDown()));
awaitLatch(listenLatch);
client.close();
client = vertx.createHttpClient(new HttpClientOptions().setMaxPoolSize(1));
client.getNow(DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, "/somepath", resp1 -> {
HttpClientRequest req = client.post(DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, "/somepath", resp2 -> {
});
req.putHeader("the_header", TestUtils.randomAlphaString(10000));
req.sendHead();
});
await();
}
代码示例来源:origin: io.vertx/vertx-core
@Test
public void testServerShutdownConnection() throws Exception {
waitFor(2);
server.connectionHandler(HttpConnection::shutdown);
server.requestHandler(req -> fail());
startServer();
HttpClientRequest req1 = client.get(DEFAULT_HTTPS_PORT, DEFAULT_HTTPS_HOST, "/somepath");
req1.connectionHandler(conn -> {
Context ctx = Vertx.currentContext();
conn.goAwayHandler(ga -> {
assertOnIOContext(ctx);
complete();
});
});
AtomicInteger count = new AtomicInteger();
req1.exceptionHandler(err -> {
if (count.getAndIncrement() == 0) {
complete();
}
});
req1.handler(resp -> {
fail();
});
req1.end();
await();
}
代码示例来源:origin: io.vertx/vertx-core
@Test
public void testSendPing() throws Exception {
waitFor(2);
Buffer expected = TestUtils.randomBuffer(8);
Context ctx = vertx.getOrCreateContext();
server.close();
server.connectionHandler(conn -> {
conn.pingHandler(data -> {
assertEquals(expected, data);
complete();
});
});
server.requestHandler(req -> {});
startServer(ctx);
HttpClientRequest req = client.get(DEFAULT_HTTPS_PORT, DEFAULT_HTTPS_HOST, "/somepath", resp -> {
});
req.connectionHandler(conn -> {
conn.ping(expected, ar -> {
assertTrue(ar.succeeded());
Buffer buff = ar.result();
assertEquals(expected, buff);
complete();
});
});
req.end();
await();
}
代码示例来源:origin: io.vertx/vertx-core
@Test
public void testReceivePing() throws Exception {
Buffer expected = TestUtils.randomBuffer(8);
Context ctx = vertx.getOrCreateContext();
server.close();
server.connectionHandler(conn -> {
conn.ping(expected, ar -> {
});
});
server.requestHandler(req -> {});
startServer(ctx);
HttpClientRequest req = client.get(DEFAULT_HTTPS_PORT, DEFAULT_HTTPS_HOST, "/somepath", resp -> {
});
req.connectionHandler(conn -> {
conn.pingHandler(data -> {
assertEquals(expected, data);
complete();
});
});
req.end();
await();
}
代码示例来源:origin: io.vertx/vertx-core
@Test
public void testInitialMaxConcurrentStreamZero() throws Exception {
server.close();
server = vertx.createHttpServer(createBaseServerOptions().setInitialSettings(new Http2Settings().setMaxConcurrentStreams(0)));
server.requestHandler(req -> {
req.response().end();
});
server.connectionHandler(conn -> {
vertx.setTimer(500, id -> {
conn.updateSettings(new Http2Settings().setMaxConcurrentStreams(10));
});
});
startServer();
client.get(DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, DEFAULT_TEST_URI, resp -> {
testComplete();
}).connectionHandler(conn -> {
assertEquals(10, conn.remoteSettings().getMaxConcurrentStreams());
}).setTimeout(10000).exceptionHandler(this::fail).end();
await();
}
代码示例来源:origin: io.vertx/vertx-core
server = vertx.createHttpServer(serverOptions);
Context otherContext = vertx.getOrCreateContext();
server.connectionHandler(conn -> {
otherContext.runOnContext(v -> {
conn.updateSettings(expectedSettings);
内容来源于网络,如有侵权,请联系作者删除!