void connect(SocketAddress address) { startEchoServer(testAddress, s -> { final int numConnections = 100; final AtomicInteger connCount = new AtomicInteger(0); for (int i = 0; i < numConnections; i++) { Handler<AsyncResult<NetSocket>> handler = res -> { if (res.succeeded()) { res.result().close(); if (connCount.incrementAndGet() == numConnections) { testComplete(); } } }; client.connect(address, handler); } }); await(); }
@Test public void testClientCloseHandlersCloseFromClient() { startEchoServer(testAddress, s -> clientCloseHandlers(true)); await(); }
void testEcho(Consumer<NetSocket> writer, Consumer<Buffer> dataChecker, int length) { Handler<AsyncResult<NetSocket>> clientHandler = (asyncResult) -> { if (asyncResult.succeeded()) { NetSocket sock = asyncResult.result(); Buffer buff = Buffer.buffer(); sock.handler((buffer) -> { buff.appendBuffer(buffer); if (buff.length() == length) { dataChecker.accept(buff); testComplete(); } if (buff.length() > length) { fail("Too many bytes received"); } }); writer.accept(sock); } else { fail("failed to connect"); } }; startEchoServer(testAddress, s -> client.connect(testAddress, clientHandler)); await(); }
private void reconnectAttempts(int attempts) { client.close(); client = vertx.createNetClient(new NetClientOptions().setReconnectAttempts(attempts).setReconnectInterval(10)); //The server delays starting for a a few seconds, but it should still connect client.connect(testAddress, onSuccess(so -> testComplete())); // Start the server after a delay vertx.setTimer(2000, id -> startEchoServer(testAddress, s -> {})); await(); }
void connect(SocketAddress address) { startEchoServer(testAddress, s -> { final int numConnections = 100; final AtomicInteger connCount = new AtomicInteger(0); for (int i = 0; i < numConnections; i++) { Handler<AsyncResult<NetSocket>> handler = res -> { if (res.succeeded()) { res.result().close(); if (connCount.incrementAndGet() == numConnections) { testComplete(); } } }; client.connect(address, handler); } }); await(); }
@Test public void testClientCloseHandlersCloseFromClient() { startEchoServer(testAddress, s -> clientCloseHandlers(true)); await(); }
void testEcho(Consumer<NetSocket> writer, Consumer<Buffer> dataChecker, int length) { Handler<AsyncResult<NetSocket>> clientHandler = (asyncResult) -> { if (asyncResult.succeeded()) { NetSocket sock = asyncResult.result(); Buffer buff = Buffer.buffer(); sock.handler((buffer) -> { buff.appendBuffer(buffer); if (buff.length() == length) { dataChecker.accept(buff); testComplete(); } if (buff.length() > length) { fail("Too many bytes received"); } }); writer.accept(sock); } else { fail("failed to connect"); } }; startEchoServer(testAddress, s -> client.connect(testAddress, clientHandler)); await(); }
private void reconnectAttempts(int attempts) { client.close(); client = vertx.createNetClient(new NetClientOptions().setReconnectAttempts(attempts).setReconnectInterval(10)); //The server delays starting for a a few seconds, but it should still connect client.connect(testAddress, onSuccess(so -> testComplete())); // Start the server after a delay vertx.setTimer(2000, id -> startEchoServer(testAddress, s -> {})); await(); }