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

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

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

HttpServer.close介绍

[英]Close the server. Any open HTTP connections will be closed.

The close happens asynchronously and the server may not be closed until some time after the call has returned.
[中]关闭服务器。任何打开的HTTP连接都将关闭。
关闭是异步进行的,在调用返回后的一段时间内,服务器可能不会关闭。

代码示例

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

/**
 * Stop the server.
 * <p>
 * Doesn't wait for the close operation to finish
 */
@Override
public void stop() {
 if (server != null) {
  server.close();
  server = null;
 }
}

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

@Override
 public void tearDown() throws Exception {
  if (httpServer != null) {
   CountDownLatch closeLatch = new CountDownLatch(1);
   httpServer.close(event -> closeLatch.countDown());
   awaitLatch(closeLatch);
  }
  super.tearDown();
 }
}

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

protected void tearDown() throws Exception {
 if (client != null) {
  try {
   client.close();
  } catch (IllegalStateException ignore) {
   // Client was already closed by the test
  }
 }
 if (server != null) {
  CountDownLatch latch = new CountDownLatch(1);
  server.close((asyncResult) -> {
   assertTrue(asyncResult.succeeded());
   latch.countDown();
  });
  awaitLatch(latch);
 }
 super.tearDown();
}

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

@Test
public void testListenInvalidPort() throws Exception {
 /* Port 7 is free for use by any application in Windows, so this test fails. */
 Assume.assumeFalse(System.getProperty("os.name").startsWith("Windows"));
 server.close();
 server = vertx.createHttpServer(new HttpServerOptions().setPort(7));
 server.requestHandler(noOpHandler()).listen(onFailure(server -> testComplete()));
 await();
}

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

@Test
public void testSharedServersRoundRobinButFirstStartAndStopServer() throws Exception {
 // Start and stop a server on the same port/host before hand to make sure it doesn't interact
 CountDownLatch latch = new CountDownLatch(1);
 HttpServer theServer = vertx.createHttpServer(new HttpServerOptions().setPort(DEFAULT_HTTP_PORT));
 theServer.requestHandler(req -> {
  fail("Should not process request");
 }).listen(onSuccess(s -> latch.countDown()));
 awaitLatch(latch);
 CountDownLatch closeLatch = new CountDownLatch(1);
 theServer.close(ar -> {
  assertTrue(ar.succeeded());
  closeLatch.countDown();
 });
 assertTrue(closeLatch.await(10, TimeUnit.SECONDS));
 testSharedServersRoundRobin();
}

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

@Override
protected void tearDown() throws Exception {
 if (netClient != null) {
  netClient.close();
 }
 if (client != null) {
  client.close();
 }
 if (server != null) {
  CountDownLatch latch = new CountDownLatch(1);
  server.close((asyncResult) -> {
   assertTrue(asyncResult.succeeded());
   latch.countDown();
  });
  awaitLatch(latch);
 }
 super.tearDown();
}

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

protected void tearDown() throws Exception {
 client.close();
 if (server != null) {
  CountDownLatch latch = new CountDownLatch(1);
  server.close(ar -> {
   assertTrue(ar.succeeded());
   latch.countDown();
  });
  awaitLatch(latch);
 }
 if (netServer != null) {
  CountDownLatch latch = new CountDownLatch(1);
  netServer.close(ar -> {
   assertTrue(ar.succeeded());
   latch.countDown();
  });
  awaitLatch(latch);
 }
 super.tearDown();
}

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

@Test
public void testListenInvalidHost() {
 server.close();
 server = vertx.createHttpServer(new HttpServerOptions().setPort(DEFAULT_HTTP_PORT).setHost("iqwjdoqiwjdoiqwdiojwd"));
 server.requestHandler(noOpHandler());
 server.listen(onFailure(s -> testComplete()));
}

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

@Test
public void testClosingServerClosesRequestStreamEndHandler() {
 this.server = vertx.createHttpServer(new HttpServerOptions().setPort(HttpTestBase.DEFAULT_HTTP_PORT));
 ReadStream<HttpServerRequest> stream = server.requestStream();
 AtomicBoolean closed = new AtomicBoolean();
 stream.endHandler(v -> closed.set(true));
 stream.handler(req -> {});
 server.listen(ar -> {
  assertTrue(ar.succeeded());
  assertFalse(closed.get());
  server.close(v -> {
   assertTrue(ar.succeeded());
   assertTrue(closed.get());
   testComplete();
  });
 });
 await();
}

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

@Test
public void testClosingServerClosesWebSocketStreamEndHandler() {
 this.server = vertx.createHttpServer(new HttpServerOptions().setPort(DEFAULT_HTTP_PORT));
 ReadStream<ServerWebSocket> stream = server.websocketStream();
 AtomicBoolean closed = new AtomicBoolean();
 stream.endHandler(v -> closed.set(true));
 stream.handler(ws -> {
 });
 server.listen(ar -> {
  assertTrue(ar.succeeded());
  assertFalse(closed.get());
  server.close(v -> {
   assertTrue(ar.succeeded());
   assertTrue(closed.get());
   testComplete();
  });
 });
 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 testFallbackOnHttp1() throws Exception {
 server.close();
 server = vertx.createHttpServer(serverOptions.setUseAlpn(false));
 server.requestHandler(req -> {
  assertEquals(HttpVersion.HTTP_1_1, req.version());
  req.response().end();
 });
 startServer();
 client.get(DEFAULT_HTTPS_PORT, DEFAULT_HTTPS_HOST, "/somepath", resp -> {
  testComplete();
 }).exceptionHandler(this::fail).end();
 await();
}

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

@Test
public void testServerLogging() throws Exception {
 server.close();
 server = vertx.createHttpServer(createBaseServerOptions().setLogActivity(true));
 TestLoggerFactory factory = testLogging();
 if (this instanceof Http1xTest) {
  assertTrue(factory.hasName("io.netty.handler.logging.LoggingHandler"));
 } else {
  assertTrue(factory.hasName("io.netty.handler.codec.http2.Http2FrameLogger"));
 }
}

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

@Test
public void testServerOptionsCopiedBeforeUse() {
 server.close();
 HttpServerOptions options = new HttpServerOptions().setHost(DEFAULT_HTTP_HOST).setPort(DEFAULT_HTTP_PORT);
 HttpServer server = vertx.createHttpServer(options);
 // Now change something - but server should still listen at previous port
 options.setPort(DEFAULT_HTTP_PORT + 1);
 server.requestHandler(req -> {
  req.response().end();
 });
 server.listen(ar -> {
  assertTrue(ar.succeeded());
  client.request(HttpMethod.GET, DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, "/uri", onSuccess(res -> {
   assertEquals(200, res.statusCode());
   testComplete();
  })).end();
 });
 await();
}

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

@Test
public void testAbsoluteURIServer() {
 server.close();
 // Listen on all addresses
 server = vertx.createHttpServer(createBaseServerOptions().setHost("0.0.0.0"));
 server.requestHandler(req -> {
  String absURI = req.absoluteURI();
  assertEquals(req.scheme() + "://localhost:8080/path", absURI);
  req.response().end();
 });
 server.listen(onSuccess(s -> {
  String host = "localhost";
  String path = "/path";
  int port = 8080;
  client.getNow(port, host, path, onSuccess(resp -> {
   assertEquals(200, resp.statusCode());
   testComplete();
  }));
 }));
 await();
}

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

@Test
 public void testServerConnectionClosed() throws Exception {
  server.close();
  server = vertx.createHttpServer(createBaseServerOptions().setIdleTimeout(2));
  server.requestHandler(req -> {
   FakeHttpServerMetrics metrics = FakeMetricsBase.getMetrics(server);
   HttpServerMetric metric = metrics.getMetric(req);
   assertNotNull(metric);
   assertFalse(metric.failed.get());
   req.response().closeHandler(v -> {
    assertNull(metrics.getMetric(req));
    assertTrue(metric.failed.get());
    testComplete();
   });
  });
  startServer();
  client.getNow(DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, "/somepath", resp -> {});
  await();
 }
}

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

@Test
public void testContentDecompression() throws Exception {
 server.close();
 server = vertx.createHttpServer(new HttpServerOptions().setPort(DEFAULT_HTTP_PORT).setDecompressionSupported(true));
 String expected = TestUtils.randomAlphaString(1000);
 byte[] dataGzipped = TestUtils.compressGzip(expected);
 server.requestHandler(req -> {
  assertEquals("localhost:" + DEFAULT_HTTP_PORT, req.headers().get("host"));
  req.bodyHandler(buffer -> {
   assertEquals(expected, buffer.toString());
   req.response().end();
  });
 });
 server.listen(onSuccess(server -> {
  client
  .request(HttpMethod.POST, DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, "some-uri", onSuccess(resp -> testComplete()))
  .putHeader("Content-Encoding", "gzip")
  .end(Buffer.buffer(dataGzipped));
 }));
 await();
}

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

@Test
public void testIdleTimeoutWithPartialH2CRequest() throws Exception {
 server.close();
 server = vertx.createHttpServer(new HttpServerOptions()
  .setPort(DEFAULT_HTTP_PORT)
  .setHost(DEFAULT_HTTP_HOST)
  .setIdleTimeout(1));
 server.requestHandler(req -> {
  testComplete();
 });
 startServer();
 NetClient client = vertx.createNetClient();
 client.connect(DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, onSuccess(so -> {
  so.closeHandler(v -> {
   testComplete();
  });
 }));
 await();
}

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

@Test
public void testServerDoesNotSupportAlpn() throws Exception {
 waitFor(2);
 server.close();
 server = vertx.createHttpServer(createBaseServerOptions().setUseAlpn(false));
 server.requestHandler(req -> {
  assertEquals(HttpVersion.HTTP_1_1, req.version());
  req.response().end();
  complete();
 });
 startServer();
 client.get(DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, DEFAULT_TEST_URI, onSuccess(resp -> {
  assertEquals(HttpVersion.HTTP_1_1, resp.version());
  complete();
 })).exceptionHandler(this::fail).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();
}

相关文章