@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(); }
this.server = vertx.createHttpServer(new HttpServerOptions().setPort(DEFAULT_HTTP_PORT)); AtomicInteger done = new AtomicInteger(); ReadStream<ServerWebSocket> stream = server.websocketStream(); stream.handler(req -> { }); ThreadLocal<Object> stack = new ThreadLocal<>();
@Test public void testMultipleServerClose() { this.server = vertx.createHttpServer(new HttpServerOptions().setPort(DEFAULT_HTTP_PORT)); AtomicInteger times = new AtomicInteger(); // We assume the endHandler and the close completion handler are invoked in the same context task ThreadLocal stack = new ThreadLocal(); stack.set(true); server.websocketStream().endHandler(v -> { assertNull(stack.get()); assertTrue(Vertx.currentContext().isEventLoopContext()); times.incrementAndGet(); }); server.close(ar1 -> { assertNull(stack.get()); assertTrue(Vertx.currentContext().isEventLoopContext()); server.close(ar2 -> { server.close(ar3 -> { assertEquals(1, times.get()); testComplete(); }); }); }); await(); }
this.server = vertx.createHttpServer(new HttpServerOptions().setAcceptBacklog(1).setPort(DEFAULT_HTTP_PORT)); AtomicBoolean paused = new AtomicBoolean(); ReadStream<ServerWebSocket> stream = server.websocketStream(); stream.handler(ws -> { assertFalse(paused.get());
@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(); }
this.server = vertx.createHttpServer(new HttpServerOptions().setPort(DEFAULT_HTTP_PORT)); AtomicInteger done = new AtomicInteger(); ReadStream<ServerWebSocket> stream = server.websocketStream(); stream.handler(req -> { }); ThreadLocal<Object> stack = new ThreadLocal<>();
@Test public void testMultipleServerClose() { this.server = vertx.createHttpServer(new HttpServerOptions().setPort(DEFAULT_HTTP_PORT)); AtomicInteger times = new AtomicInteger(); // We assume the endHandler and the close completion handler are invoked in the same context task ThreadLocal stack = new ThreadLocal(); stack.set(true); server.websocketStream().endHandler(v -> { assertNull(stack.get()); assertTrue(Vertx.currentContext().isEventLoopContext()); times.incrementAndGet(); }); server.close(ar1 -> { assertNull(stack.get()); assertTrue(Vertx.currentContext().isEventLoopContext()); server.close(ar2 -> { server.close(ar3 -> { assertEquals(1, times.get()); testComplete(); }); }); }); await(); }
this.server = vertx.createHttpServer(new HttpServerOptions().setAcceptBacklog(1).setPort(DEFAULT_HTTP_PORT)); AtomicBoolean paused = new AtomicBoolean(); ReadStream<ServerWebSocket> stream = server.websocketStream(); stream.handler(ws -> { assertFalse(paused.get());
/** * Return the websocket stream for the server. If a websocket connect handshake is successful a * new {@link io.vertx.rxjava.core.http.ServerWebSocket} instance will be created and passed to the stream {@link io.vertx.rxjava.core.streams.ReadStream#handler}. * @return the websocket stream */ public io.vertx.rxjava.core.streams.ReadStream<io.vertx.rxjava.core.http.ServerWebSocket> websocketStream() { if (cached_1 != null) { return cached_1; } io.vertx.rxjava.core.streams.ReadStream<io.vertx.rxjava.core.http.ServerWebSocket> ret = io.vertx.rxjava.core.streams.ReadStream.newInstance(delegate.websocketStream(), io.vertx.rxjava.core.http.ServerWebSocket.__TYPE_ARG); cached_1 = ret; return ret; }
/** * Return the websocket stream for the server. If a websocket connect handshake is successful a * new {@link io.vertx.rxjava.core.http.ServerWebSocket} instance will be created and passed to the stream . * @return the websocket stream */ public io.vertx.rxjava.core.streams.ReadStream<io.vertx.rxjava.core.http.ServerWebSocket> websocketStream() { if (cached_1 != null) { return cached_1; } io.vertx.rxjava.core.streams.ReadStream<io.vertx.rxjava.core.http.ServerWebSocket> ret = io.vertx.rxjava.core.streams.ReadStream.newInstance(delegate.websocketStream(), io.vertx.rxjava.core.http.ServerWebSocket.__TYPE_ARG); cached_1 = ret; return ret; }