@Override public void start() throws Exception { HttpServer server = vertx.createHttpServer(); server.requestStream().toObservable().subscribe(req -> { req.response().putHeader("content-type", "application/json").end(new JsonObject().put("time", System.currentTimeMillis()).toString()); }); server.listen(8080); } }
@Override public void start() throws Exception { HttpServer server = vertx.createHttpServer(); server.requestStream().toObservable().subscribe(req -> { req.response().putHeader("content-type", "application/json").end(new JsonObject().put("time", System.currentTimeMillis()).toString()); }); server.listen(8080); } }
@Override public void start() throws Exception { HttpServer server = vertx.createHttpServer(); server.requestStream().toObservable().subscribe(req -> { req.response().putHeader("content-type", "application/json").end("{\"message\":\"Hello World\"}"); }); server.listen(8080); } }
@Override public void start() throws Exception { HttpServer server = vertx.createHttpServer(); server.requestStream().toObservable().subscribe(req -> { req.response().putHeader("content-type", "text/html").end("<html><body><h1>Hello from vert.x!</h1></body></html>"); }); server.listen(8080); } }
@Override public void start() throws Exception { HttpServer server = vertx.createHttpServer(); server.requestStream().toObservable().subscribe(req -> { req.response().putHeader("content-type", "application/json").end("{\"message\":\"Hello World\"}"); }); server.listen(8080); } }
@Override public void start() throws Exception { HttpServer server = vertx.createHttpServer(); server.requestStream().toObservable().subscribe(req -> { req.response().putHeader("content-type", "text/html").end("<html><body><h1>Hello from vert.x!</h1></body></html>"); }); server.listen(8080); } }
@Override public void start() throws Exception { HttpServer server = vertx.createHttpServer(); server.requestStream().toObservable().subscribe(req -> { req.response().putHeader("content-type", "text/html").end("<html><body><h1>Hello from vert.x!</h1></body></html>"); }); server.listen(8080); } }
@Override public void start() throws Exception { HttpServer server = vertx.createHttpServer(); server.requestStream().toObservable().subscribe(req -> { HttpServerResponse resp = req.response(); String contentType = req.getHeader("Content-Type"); if (contentType != null) { resp.putHeader("Content-Type", contentType); } resp.setChunked(true); req.toObservable().subscribe( resp::write, err -> {}, resp::end ); }); server.listen(8080); } }
@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 Observable Observable<String> msg = vertx.eventBus().<String>consumer("news-feed") .bodyStream() .toObservable(); // Send the event to the client Subscription subscription = msg.subscribe(sockJSSocket::write); // Unsubscribe when the socket closes sockJSSocket.endHandler(v -> { subscription.unsubscribe(); }); })); // 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!")); } }
private void registerConsumer(final String dbname) { LOG.debug("Registering handler for {} database", dbname); if(LOG.isTraceEnabled()){ vertx.eventBus().<JsonObject>consumer("/store/" + dbname, msg -> { LOG.trace("received datapoint for db '{}': {}", dbname, msg.body()); }); } vertx.eventBus().<JsonObject>consumer("/store/" + dbname).bodyStream() .toObservable() .buffer(config().getInteger("maxRowLimit", 1000)) .map(this::joinDataPoints) .subscribe(result -> sendDatapoint(dbname, result)); vertx.eventBus().<JsonObject>consumer("/influx/write?db=" + dbname).bodyStream() .toObservable() .buffer(config().getInteger("maxRowLimit", 1000)) .map(this::joinDataPoints) .subscribe(result -> sendDatapoint(dbname, result)); }
/** * Imports a JSON file from the given input stream into the store * @param f the JSON file to read * @param correlationId a unique identifier for this import process * @param filename the name of the file currently being imported * @param timestamp denotes when the import process has started * @param layer the layer where the file should be stored (may be null) * @param tags the list of tags to attach to the file (may be null) * @param properties the map of properties to attach to the file (may be null) * @return an observable that will emit the number 1 when a chunk has been imported */ protected Observable<Integer> importJSON(ReadStream<Buffer> f, String correlationId, String filename, long timestamp, String layer, List<String> tags, Map<String, Object> properties) { UTF8BomFilter bomFilter = new UTF8BomFilter(); StringWindow window = new StringWindow(); GeoJsonSplitter splitter = new GeoJsonSplitter(window); AtomicInteger processing = new AtomicInteger(0); return f.toObservable() .map(Buffer::getDelegate) .map(bomFilter::filter) .doOnNext(window::append) .compose(new JsonParserTransformer()) .flatMap(splitter::onEventObservable) .flatMapSingle(result -> { IndexMeta indexMeta = new IndexMeta(correlationId, filename, timestamp, tags, properties, null); return addToStoreWithPause(result, layer, indexMeta, f, processing) .toSingleDefault(1); }); }
AtomicInteger processing = new AtomicInteger(0); XMLCRSIndexer crsIndexer = new XMLCRSIndexer(); return f.toObservable() .map(Buffer::getDelegate) .map(bomFilter::filter)
@Test public void testObservableUnsubscribeDuringObservation() { EventBus eb = vertx.eventBus(); MessageConsumer<String> consumer = eb.<String>consumer("the-address"); Observable<String> obs = consumer.bodyStream().toObservable(); Observable<String> a = obs.take(4); List<String> obtained = new ArrayList<>(); a.subscribe(new Subscriber<String>() { @Override public void onCompleted() { assertEquals(Arrays.asList("msg0", "msg1", "msg2", "msg3"), obtained); testComplete(); } @Override public void onError(Throwable e) { fail(e.getMessage()); } @Override public void onNext(String str) { obtained.add(str); } }); for (int i = 0; i < 7; i++) { eb.send("the-address", "msg" + i); } await(); }
@Test public void testUnregisterConsumer() { EventBus eb = vertx.eventBus(); MessageConsumer<String> consumer = eb.<String>consumer("the-address"); Observable<String> obs = consumer.bodyStream().toObservable(); obs.subscribe(new Subscriber<String>() { @Override public void onCompleted() { testComplete(); } @Override public void onError(Throwable e) { fail(e.getMessage()); } @Override public void onNext(String str) { fail(); } }); consumer.unregister(); await(); }
EventBus eb = vertx.eventBus(); MessageConsumer<String> consumer = eb.<String>consumer("the-address"); Observable<String> obs = consumer.bodyStream().toObservable(); List<String> items = new ArrayList<>(); obs.subscribe(new Subscriber<String>() {
EventBus eb = vertx.eventBus(); MessageConsumer<String> consumer = eb.<String>consumer("the-address"); Observable<String> obs = consumer.bodyStream().toObservable(); obs.subscribe(new Subscriber<String>() { @Override
Observable<String> observable = consumer.toObservable(); observable. buffer(500, TimeUnit.MILLISECONDS, io.vertx.rxjava.core.RxHelper.scheduler(vertx)).
); NetServer server = vertx.createNetServer(new NetServerOptions().setPort(1234).setHost("localhost")); Observable<NetSocket> socketObs = server.connectStream().toObservable(); socketObs.subscribe(new Subscriber<NetSocket>() { @Override
); HttpServer server = vertx.createHttpServer(new HttpServerOptions().setPort(8080).setHost("localhost")); Observable<ServerWebSocket> socketObs = server.websocketStream().toObservable(); socketObs.subscribe(new Subscriber<ServerWebSocket>() { @Override
@Test public void testWebsocketClientFlatMap() { HttpServer server = vertx.createHttpServer(new HttpServerOptions().setPort(8080)); server.websocketStream().handler(ws -> { ws.write(Buffer.buffer("some_content")); ws.close(); }); server.listen(ar -> { HttpClient client = vertx.createHttpClient(new HttpClientOptions()); Buffer content = Buffer.buffer(); client. websocketStream(8080, "localhost", "/the_uri"). toObservable(). flatMap(WebSocket::toObservable). forEach(content::appendBuffer, err -> fail(), () -> { server.close(); assertEquals("some_content", content.toString("UTF-8")); testComplete(); }); }); await(); }