@Override public void start() throws Exception { Router router = Router.router(vertx); router.route("/news-feed/*").handler(SockJSHandler.create(vertx).socketHandler(sockJSSocket -> { // Consumer the event bus address as an Flowable Flowable<String> msg = vertx.eventBus().<String>consumer("news-feed") .bodyStream() .toFlowable(); // Send the event to the client Disposable subscription = msg.subscribe(sockJSSocket::write); // Unsubscribe (dispose) when the socket closes sockJSSocket.endHandler(v -> { subscription.dispose(); }); })); // Serve the static resources router.route().handler(StaticHandler.create()); vertx.createHttpServer().requestHandler(router).listen(8080); // Publish a message to the address "news-feed" every second vertx.setPeriodic(1000, t -> vertx.eventBus().publish("news-feed", "news from the server!")); } }
@Override public Completable preRoute() { return Completable.defer(() -> { AppGlobals globals = AppGlobals.get(); SockJSHandler sockJSHandler = SockJSHandler.create(globals.getVertx()); BridgeOptions bridgeOptions = new BridgeOptions() .addInboundPermitted(new PermittedOptions().setAddress("app.markdown")) .addOutboundPermitted(new PermittedOptions().setAddress("page.saved")); sockJSHandler.bridge(bridgeOptions); globals.getRouter().route("/eventbus/*").handler(sockJSHandler); return super.preRoute(); }); } });
@Override public Completable preRoute() { return Completable.defer(() -> { AppGlobals globals = AppGlobals.get(); SockJSHandler sockJSHandler = SockJSHandler.create(globals.getVertx()); BridgeOptions bridgeOptions = new BridgeOptions() .addInboundPermitted(new PermittedOptions().setAddress("app.markdown")) .addOutboundPermitted(new PermittedOptions().setAddress("page.saved")); sockJSHandler.bridge(bridgeOptions); globals.getRouter().route("/eventbus/*").handler(sockJSHandler); return super.preRoute(); }); } });
private Completable setupWebServer() { Router router = Router.router(vertx); SockJSHandler sockJSHandler = SockJSHandler.create(vertx); sockJSHandler.bridge(new BridgeOptions() .addOutboundPermitted(new PermittedOptions().setAddressRegex("album\\.\\d+\\.comments\\.new")));