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

x33g5p2x  于2022-01-20 转载在 其他  
字(10.6k)|赞(0)|评价(0)|浏览(223)

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

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);

相关文章