@Test public void testWriteHandlerSuccess() throws Exception { CompletableFuture<Void> close = new CompletableFuture<>(); server.connectHandler(socket -> { socket.pause(); close.thenAccept(v -> { socket.resume(); }); }); startServer(); client.connect(testAddress, onSuccess(so -> { writeUntilFull(so, v -> { so.write(Buffer.buffer("lost buffer"), onSuccess(ack -> testComplete())); close.complete(null); }); })); await(); }
@Test public void testWriteHandlerFailure() throws Exception { CompletableFuture<Void> close = new CompletableFuture<>(); server.connectHandler(socket -> { socket.pause(); close.thenAccept(v -> { socket.close(); }); }); startServer(); client.connect(testAddress, onSuccess(so -> { writeUntilFull(so, v -> { so.write(Buffer.buffer("lost buffer"), onFailure(err -> { testComplete(); })); close.complete(null); }); })); await(); }
@Test public void testServerDrainHandler() { drainingServer(s -> { client.connect(testAddress, onSuccess(sock -> { sock.pause(); setHandlers(sock); sock.handler(buf -> {}); })); }); await(); }
startServer(); client.connect(testAddress, "localhost", onSuccess(so -> { so.pause(); AtomicBoolean closed = new AtomicBoolean(); AtomicBoolean ended = new AtomicBoolean();
void pausingServer(Handler<AsyncResult<NetServer>> listenHandler) { server.connectHandler(sock -> { sock.pause(); Handler<Message<Buffer>> resumeHandler = (m) -> sock.resume(); MessageConsumer reg = vertx.eventBus().<Buffer>consumer("server_resume").handler(resumeHandler); sock.closeHandler(v -> reg.unregister()); }).listen(testAddress, listenHandler); }
private void testAccessNetSocketPendingResponseData(boolean pause) { server.requestHandler(req -> { NetSocket so = req.netSocket(); so.write("hello"); }); server.listen(onSuccess(s -> { HttpClientRequest req = client.request(HttpMethod.CONNECT, DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, DEFAULT_TEST_URI, onSuccess(resp -> { NetSocket so = resp.netSocket(); assertNotNull(so); so.handler(buff -> { // With HTTP/1.1 the buffer is received immediately but delivered asynchronously assertEquals("hello", buff.toString()); testComplete(); }); if (pause) { so.pause(); vertx.setTimer(100, id -> { so.resume(); }); } })); req.sendHead(); })); await(); }
so.handler(buff -> { len[0] += buff.length(); so.pause(); vertx.setTimer(1, id -> { so.resume();
public io.vertx.rxjava.core.net.NetSocket pause() { delegate.pause(); return this; }
public io.vertx.rxjava.core.net.NetSocket pause() { delegate.pause(); return this; }
@Test public void testWriteHandlerSuccess() throws Exception { CompletableFuture<Void> close = new CompletableFuture<>(); server.connectHandler(socket -> { socket.pause(); close.thenAccept(v -> { socket.resume(); }); }); startServer(); client.connect(testAddress, onSuccess(so -> { writeUntilFull(so, v -> { so.write(Buffer.buffer("lost buffer"), onSuccess(ack -> testComplete())); close.complete(null); }); })); await(); }
@Test public void testWriteHandlerFailure() throws Exception { CompletableFuture<Void> close = new CompletableFuture<>(); server.connectHandler(socket -> { socket.pause(); close.thenAccept(v -> { socket.close(); }); }); startServer(); client.connect(testAddress, onSuccess(so -> { writeUntilFull(so, v -> { so.write(Buffer.buffer("lost buffer"), onFailure(err -> { testComplete(); })); close.complete(null); }); })); await(); }
@Test public void testServerDrainHandler() { drainingServer(s -> { client.connect(testAddress, onSuccess(sock -> { sock.pause(); setHandlers(sock); sock.handler(buf -> {}); })); }); await(); }
startServer(); client.connect(testAddress, "localhost", onSuccess(so -> { so.pause(); AtomicBoolean closed = new AtomicBoolean(); AtomicBoolean ended = new AtomicBoolean();
void pausingServer(Handler<AsyncResult<NetServer>> listenHandler) { server.connectHandler(sock -> { sock.pause(); Handler<Message<Buffer>> resumeHandler = (m) -> sock.resume(); MessageConsumer reg = vertx.eventBus().<Buffer>consumer("server_resume").handler(resumeHandler); sock.closeHandler(v -> reg.unregister()); }).listen(testAddress, listenHandler); }
private void testAccessNetSocketPendingResponseData(boolean pause) { server.requestHandler(req -> { NetSocket so = req.netSocket(); so.write("hello"); }); server.listen(onSuccess(s -> { HttpClientRequest req = client.request(HttpMethod.CONNECT, DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, DEFAULT_TEST_URI, resp -> { NetSocket so = resp.netSocket(); assertNotNull(so); so.handler(buff -> { // With HTTP/1.1 the buffer is received immediately but delivered asynchronously assertEquals("hello", buff.toString()); testComplete(); }); if (pause) { so.pause(); vertx.setTimer(100, id -> { so.resume(); }); } }); req.sendHead(); })); await(); }
private void processSaslAuthentication() { if (authenticator == null) { return; } socket.pause(); authenticator.process(complete -> { if(complete) { authenticator = null; } socket.resume(); }); }
so.handler(buff -> { len[0] += buff.length(); so.pause(); vertx.setTimer(1, id -> { so.resume();
private void handle(NetSocket clientSocket) { clientSocket.pause(); client.connect(pgPort, pgHost, ar -> { if (ar.succeeded()) { NetSocket serverSocket = ar.result(); serverSocket.pause(); Connection conn = new Connection(clientSocket, serverSocket); proxyHandler.handle(conn); } else { clientSocket.close(); } }); } }
public RecordParser initialHandhakeProtocolParser() { NetSocket sock = netSocket; final RecordParser parser = RecordParser.newDelimited("\n", h -> { String cmd = h.toString(); if("START SESSION".equalsIgnoreCase(cmd)) { sock.pause(); start(); logger.info("Bridge Server - start session with " + "tenant: " + getTenant() + ", ip: " + sock.remoteAddress() + ", bridgeUUID: " + getBridgeUUID() ); sock.resume(); } else { String tenant = cmd; String tenantFromCert = new CertInfo(sock).getTenant(); if(tenantFromCert != null) tenant = tenantFromCert; setTenant(tenant); } }); return parser; } }
public void start() { init(); netSocket.pause(); consumer.pause(); // from remote tcp to local bus fromRemoteTcpToLocalBus.start(); // from local bus to remote tcp consumer.handler(bufferMessage -> { boolean isBridged = isBridged(bufferMessage); if (!isBridged) { boolean tenantMatch = tenantMatch(bufferMessage); if(tenantMatch) { netSocketWrapper.sendMessageToClient(bufferMessage.body()); } } }); consumer.resume(); netSocket.resume(); }