List of usage examples for io.vertx.core.eventbus EventBus consumer
<T> MessageConsumer<T> consumer(String address, Handler<Message<T>> handler);
From source file:com.tad.vertx.events.CDIEventBusBridge.java
License:Apache License
@Override public void onVertxStart() { EventBus eb = vertx.eventBus(); eb.consumer("some-address", m -> beanManager.fireEvent(m.body())); vertx.setPeriodic(1000, v -> eb.publish("some-address", "Some text here " + v)); vertx.setPeriodic(1500, v -> eb.publish("some-address", new JsonObject().put("foo", "bar " + v))); }
From source file:examples.EventBusExamples.java
License:Open Source License
public void example1(Vertx vertx) { EventBus eb = vertx.eventBus(); eb.consumer("news.uk.sport", message -> { System.out.println("I have received a message: " + message.body()); });//w w w. j a v a2 s . c o m }
From source file:io.flowly.core.verticles.VerticleUtils.java
License:Open Source License
private static <T> void registerHandlers(EventBus eventBus, Logger logger, Queue<ConsumerRegistration<T>> registrations, Future<Void> future) { ConsumerRegistration<T> registration = registrations.remove(); if (registration.isLocalOnly()) { eventBus.localConsumer(registration.getAddress(), registration.getMessageHandler()); recursivelyRegisterHandlers(eventBus, logger, registrations, future); } else {/*w w w. j a v a 2s . c om*/ eventBus.consumer(registration.getAddress(), registration.getMessageHandler()) .completionHandler(result -> { if (result.succeeded()) { recursivelyRegisterHandlers(eventBus, logger, registrations, future); } else { Failure failure = new Failure(100, "Failed to register handler: " + registration.getAddress(), result.cause()); logger.error(failure.getError(), failure.getCause()); future.fail(failure); } }); } }
From source file:io.github.jdocker.serviceregistry.ServiceRegistry.java
License:Apache License
public void start(Future<Void> startFuture) throws Exception { clustered = config().getBoolean("clustered", false); EventBus eb = vertx.eventBus(); eb.consumer(REG_ADDRESS_GET, (Handler<Message<String>>) message -> { System.out.println("I have received a message: " + message.body()); String endpointName = message.body(); findEndpointAndReply(endpointName, message); });/*w w w . j ava2 s . c om*/ eb.consumer(REG_ADDRESS_PUT, (Handler<Message<String>>) message -> { System.out.println("I have received a message: " + message.body()); Endpoint endpoint = Json.decodeValue(message.body(), Endpoint.class); registerEndpoint(endpoint); }); startFuture.complete(); }
From source file:microservices.DataSetService.java
@Override public void start() { //blablabla/*from w ww.j av a 2s.c om*/ ArrayList<SockJSSocket> sockets = new ArrayList<>(); Router router = Router.router(vertx); SockJSHandlerOptions options = new SockJSHandlerOptions().setHeartbeatInterval(2000); SockJSHandler sockJSHandler = SockJSHandler.create(vertx, options); sockJSHandler.socketHandler(sockJSSocket -> { System.out.println("New connection!"); //sockJSSocket.handler(sockJSSocket::write);//echo sockets.add(sockJSSocket); }); router.route("/myapp/*").handler(sockJSHandler); vertx.createHttpServer().requestHandler(router::accept).listen(5566); EventBus eb = vertx.eventBus(); eb.consumer("feed", message -> { System.out.println("Received news on consumer 1: " + message.body()); for (SockJSSocket s : sockets) { s.write(Buffer.buffer(message.body().toString())); } }); System.out.println("DataSet receiver ready!"); }
From source file:org.jberet.vertx.cluster.PartitionVerticle.java
License:Open Source License
@Override public void start() throws Exception { final JobOperatorImpl jobOperator = new JobOperatorImpl(); final BatchEnvironment batchEnvironment = jobOperator.getBatchEnvironment(); final JobRepository jobRepository = jobOperator.getJobRepository(); final ArtifactFactoryWrapper artifactFactory = new ArtifactFactoryWrapper( batchEnvironment.getArtifactFactory()); final EventBus eventBus = vertx.eventBus(); final Handler<Message<Buffer>> receivingPartitionHandler = new Handler<Message<Buffer>>() { public void handle(Message<Buffer> message) { Buffer body = message.body(); final byte[] bytes = body.getBytes(); final PartitionInfo partitionInfo; try { partitionInfo = (PartitionInfo) BatchUtil.bytesToSerializableObject(bytes, batchEnvironment.getClassLoader()); } catch (Exception e) { throw VertxClusterMessages.MESSAGES.failedToReceivePartitionInfo(e); }// w w w. j a v a 2 s . c o m final JobExecutionImpl jobExecution = partitionInfo.getJobExecution(); final Step step = partitionInfo.getStep(); final PartitionExecutionImpl partitionExecution = partitionInfo.getPartitionExecution(); final String stopRequestTopicName = PartitionInfo .getStopRequestTopicName(jobExecution.getExecutionId()); eventBus.consumer(stopRequestTopicName, new Handler<Message<Boolean>>() { @Override public void handle(final Message<Boolean> stopMessage) { VertxClusterLogger.LOGGER.receivedStopRequest(jobExecution.getExecutionId(), step.getId(), partitionExecution.getStepExecutionId(), partitionExecution.getPartitionId()); jobExecution.stop(); } }); VertxClusterLogger.LOGGER.receivedPartitionInfo(partitionInfo); final JobContextImpl jobContext = new JobContextImpl(jobExecution, null, artifactFactory, jobRepository, batchEnvironment); final VertxPartitionWorker partitionWorker = new VertxPartitionWorker(eventBus); final AbstractContext[] outerContext = { jobContext }; final StepContextImpl stepContext = new StepContextImpl(step, partitionExecution, outerContext); final AbstractRunner<StepContextImpl> runner; final Chunk chunk = step.getChunk(); if (chunk == null) { runner = new BatchletRunner(stepContext, null, step.getBatchlet(), partitionWorker); } else { runner = new ChunkRunner(stepContext, null, chunk, null, partitionWorker); } batchEnvironment.submitTask(runner); } }; eventBus.consumer(PartitionInfo.PARTITION_QUEUE, receivingPartitionHandler); }
From source file:org.matrixlab.pisces.metastore.LocalReceiver.java
@Override public void start() throws Exception { EventBus eventBus = getVertx().eventBus(); // Does not have to register codec because sender already registered /*eventBus.registerDefaultCodec(CustomMessage.class, new CustomMessageCodec());*/ // Receive message eventBus.consumer("local-message-receiver", message -> { CustomMessage customMessage = (CustomMessage) message.body(); System.out.println("Custom message received: " + customMessage.getSummary()); // Replying is same as publishing CustomMessage replyMessage = new CustomMessage(200, "a00000002", "Message sent from local receiver!"); message.reply(replyMessage);/*from w ww . jav a 2 s . c o m*/ }); }
From source file:spring.vertxtest.verticle.MyTestVerticle.java
@Override public void start(Future<Void> fut) throws Exception { log.info("start() -- starting Vertx Verticle with eventbus, API handler, and static file handler"); // grab the router router = getRouter();/*from w w w . j a v a 2s . c o m*/ // enable CORS for the router CorsHandler corsHandler = CorsHandler.create("*"); //Wildcard(*) not allowed if allowCredentials is true corsHandler.allowedMethod(HttpMethod.OPTIONS); corsHandler.allowedMethod(HttpMethod.GET); corsHandler.allowedMethod(HttpMethod.POST); corsHandler.allowedMethod(HttpMethod.PUT); corsHandler.allowedMethod(HttpMethod.DELETE); corsHandler.allowCredentials(false); corsHandler.allowedHeader("Access-Control-Request-Method"); corsHandler.allowedHeader("Access-Control-Allow-Method"); corsHandler.allowedHeader("Access-Control-Allow-Credentials"); corsHandler.allowedHeader("Access-Control-Allow-Origin"); corsHandler.allowedHeader("Access-Control-Allow-Headers"); corsHandler.allowedHeader("Content-Type"); // enable handling of body router.route().handler(BodyHandler.create()); router.route().handler(corsHandler); router.route().handler(this::handleAccessLogging); // publish a payload to provided eventbus destination router.post("/api/eventbus/publish/:destination").handler(this::publish); // open up all for outbound and inbound traffic bridgeOptions = new BridgeOptions(); bridgeOptions.addOutboundPermitted(new PermittedOptions().setAddressRegex(".*")); bridgeOptions.addInboundPermitted(new PermittedOptions().setAddressRegex(".*")); // sockJsHandler = SockJSHandler.create(vertx).bridge(bridgeOptions); sockJsHandler = SockJSHandler.create(vertx); sockJsHandler.bridge(bridgeOptions, be -> { try { if (be.type() == BridgeEventType.SOCKET_CREATED) { handleSocketOpenEvent(be); } else if (be.type() == BridgeEventType.REGISTER) { handleRegisterEvent(be); } else if (be.type() == BridgeEventType.UNREGISTER) { handleUnregisterEvent(be); } else if (be.type() == BridgeEventType.SOCKET_CLOSED) { handleSocketCloseEvent(be); } } catch (Exception e) { } finally { be.complete(true); } }); router.route("/eventbus/*").handler(sockJsHandler); if (testPathEnabled) { router.route("/" + testUrlPath + "/*") .handler(StaticHandler.create(testFilePath).setCachingEnabled(cachingEnabled)); } // create periodic task, pushing all current EventBusRegistrations vertx.setPeriodic(1000, handler -> { JsonObject obj = new JsonObject(); obj.put("testMessage", "Periodic test message from server..."); vertx.eventBus().publish("heartbeat-test", Json.encodePrettily(obj)); }); EventBus eb = vertx.eventBus(); eb.consumer("client-test", message -> { log.info("Received message from client: " + Json.encodePrettily(message.body()) + " at " + System.currentTimeMillis()); }); HttpServerOptions httpOptions = new HttpServerOptions(); if (sslEnabled) { httpOptions.setSsl(true); httpOptions.setKeyStoreOptions(sslKeyStoreOptions); } log.info("starting web server on port: " + port); vertx.createHttpServer(httpOptions).requestHandler(router::accept).listen(port, result -> { if (result.succeeded()) { setStarted(true); log.info("Server started and ready to accept requests"); fut.complete(); } else { setStarted(false); fut.fail(result.cause()); } }); }
From source file:vertx_react.verticles.EventsVerticle.java
@Override public void start(Future<Void> startFuture) throws Exception { EventBus eb = this.getVertx().eventBus(); eb.consumer("incoming", (Message<JsonObject> handler) -> { JsonObject m = handler.body();/* w w w .j a va 2 s . c o m*/ JsonArray ja = new JsonArray(getRandomArray()); JsonObject j = new JsonObject().put("table", m.getInteger("table")).put("openSeats", ja); handler.reply(j); log.info(Json.encodePrettily(m.encodePrettily())); }); super.start(startFuture); }