List of usage examples for io.vertx.core.eventbus MessageConsumer handler
@Override MessageConsumer<T> handler(Handler<Message<T>> handler);
From source file:co.runrightfast.vertx.core.RunRightFastVerticle.java
License:Apache License
/** * * @param <REQ>/* w w w .jav a 2 s. com*/ * @param <RESP> * @param config * @return MessageConsumer */ protected <REQ extends Message, RESP extends Message> MessageConsumerRegistration<REQ, RESP> registerMessageConsumer( @NonNull final MessageConsumerConfig<REQ, RESP> config) { Preconditions.checkState( !messageConsumerRegistrations.containsKey(config.getAddressMessageMapping().getAddress())); final EventBus eventBus = vertx.eventBus(); registerMessageCodecs(config); final String address = config.getAddressMessageMapping().getAddress(); final MessageConsumer<REQ> consumer = config.isLocal() ? eventBus.localConsumer(address) : eventBus.consumer(address); consumer.completionHandler(config.getCompletionHandler() .map(handler -> messageConsumerCompletionHandler(address, Optional.of(handler), config)) .orElseGet(() -> messageConsumerCompletionHandler(address, Optional.empty(), config))); consumer.endHandler(config.getEndHandler() .map(handler -> messageConsumerEndHandler(address, Optional.of(handler), config)) .orElseGet(() -> messageConsumerEndHandler(address, Optional.empty(), config))); config.getExceptionHandler().ifPresent(consumer::exceptionHandler); consumer.handler(messageConsumerHandler(config)); final String processSpecificAddress = config.getAddressMessageMapping().getProcessSpecificAddress(); final MessageConsumer<REQ> processSpecificConsumer = config.isLocal() ? eventBus.localConsumer(processSpecificAddress) : eventBus.consumer(processSpecificAddress); processSpecificConsumer.completionHandler(config.getCompletionHandler().map( handler -> messageConsumerCompletionHandler(processSpecificAddress, Optional.of(handler), config)) .orElseGet( () -> messageConsumerCompletionHandler(processSpecificAddress, Optional.empty(), config))); processSpecificConsumer.endHandler(config.getEndHandler() .map(handler -> messageConsumerEndHandler(processSpecificAddress, Optional.of(handler), config)) .orElseGet(() -> messageConsumerEndHandler(processSpecificAddress, Optional.empty(), config))); config.getExceptionHandler().ifPresent(processSpecificConsumer::exceptionHandler); processSpecificConsumer.handler(messageConsumerHandler(config)); final MessageConsumerRegistration<REQ, RESP> messageConsumerRegistration = MessageConsumerRegistration .<REQ, RESP>builder().messageConsumer(consumer) .processSpecificMessageConsumer(processSpecificConsumer).config(config).build(); messageConsumerRegistrations = ImmutableMap.<String, MessageConsumerRegistration<?, ?>>builder() .putAll(messageConsumerRegistrations).put(config.address(), messageConsumerRegistration).build(); return messageConsumerRegistration; }
From source file:de.qreator.matheserver.Start.java
public static void main(String[] s) { int port = 8080; if (s.length == 1) { port = Integer.parseInt(s[0]); // port festlegen: }//from w w w . jav a 2 s .c o m Vertx vertx = Vertx.vertx(); io.vertx.core.http.HttpServer server = vertx.createHttpServer(); Router router = Router.router(vertx); SockJSHandler sockJSHandler = SockJSHandler.create(vertx); PermittedOptions[] inboundPermitted = new PermittedOptions[3]; inboundPermitted[0] = new PermittedOptions().setAddress("matheserver"); inboundPermitted[1] = new PermittedOptions().setAddress("matheserver.spielfeld"); inboundPermitted[2] = new PermittedOptions().setAddressRegex("matheserver.spieler\\..+"); BridgeOptions options = new BridgeOptions(); for (int i = 0; i < 3; i++) { options.addInboundPermitted(inboundPermitted[i]); options.addOutboundPermitted(inboundPermitted[i]); } sockJSHandler.bridge(options); router.route("/bridge/*").handler(sockJSHandler); router.route("/*").handler(StaticHandler.create()); // webroot unter src/main/resources/webroot server.requestHandler(router::accept).listen(port); EventBus eb = vertx.eventBus(); MessageConsumer<JsonObject> consumer = eb.consumer("matheserver"); consumer.handler(message -> { String typ = (message.body()).getString("typ"); if (typ.equals("einaus")) { try { Runtime.getRuntime().exec("sudo init 6"); System.out.println("System wird neu gestartet ..."); } catch (IOException ex) { ex.printStackTrace(); } } }); try { System.out.println("Spieler bitte mit Browser anmelden unter \nhttp://" + InetAddress.getLocalHost().getHostAddress() + ":" + port + "/spieler.html"); } catch (Exception e) { e.printStackTrace(); } }
From source file:examples.EventBusExamples.java
License:Open Source License
public void example2(Vertx vertx) { EventBus eb = vertx.eventBus();// w w w . j a v a2 s . c o m MessageConsumer<String> consumer = eb.consumer("news.uk.sport"); consumer.handler(message -> { System.out.println("I have received a message: " + message.body()); }); }
From source file:examples.EventBusExamples.java
License:Open Source License
public void example8(EventBus eventBus) { MessageConsumer<String> consumer = eventBus.consumer("news.uk.sport"); consumer.handler(message -> { System.out.println("I have received a message: " + message.body()); message.reply("how interesting!"); });//from w w w. j a va 2 s .c o m }
From source file:examples.MessageSourceExamples.java
License:Open Source License
public void example2(ServiceDiscovery discovery) { // Get the record discovery.getRecord(new JsonObject().put("name", "some-message-source-service"), ar -> { if (ar.succeeded() && ar.result() != null) { // Retrieve the service reference ServiceReference reference = discovery.getReference(ar.result()); // Retrieve the service object MessageConsumer<JsonObject> consumer = reference.get(); // Attach a message handler on it consumer.handler(message -> { // message handler JsonObject payload = message.body(); });/*from w ww .java 2s. c o m*/ // ... // when done reference.release(); } }); }
From source file:examples.MessageSourceExamples.java
License:Open Source License
public void example3(ServiceDiscovery discovery) { MessageSource.<JsonObject>getConsumer(discovery, new JsonObject().put("name", "some-message-source-service"), ar -> { if (ar.succeeded()) { MessageConsumer<JsonObject> consumer = ar.result(); // Attach a message handler on it consumer.handler(message -> { // message handler JsonObject payload = message.body(); });// w ww .j a v a 2 s . co m // ... // Dont' forget to release the service ServiceDiscovery.releaseServiceObject(discovery, consumer); } }); }
From source file:examples.VertxAmqpBridgeExamples.java
License:Apache License
public void example2(Vertx vertx) { AmqpBridge bridge = AmqpBridge.create(vertx); // Start the bridge, then use the event loop thread to process things thereafter. bridge.start("localhost", 5672, res -> { // Set up a consumer using the bridge, register a handler for it. MessageConsumer<JsonObject> consumer = bridge.createConsumer("myAmqpAddress"); consumer.handler(vertxMsg -> { JsonObject amqpMsgPayload = vertxMsg.body(); Object amqpBody = amqpMsgPayload.getValue("body"); System.out.println("Received a message with body: " + amqpBody); });/*from w w w . jav a2s.c o m*/ }); }
From source file:examples.VertxAmqpBridgeExamples.java
License:Apache License
public void example7(MessageConsumer<JsonObject> consumer) { consumer.setMaxBufferedMessages(5);//from w ww . ja v a2s. co m consumer.handler(msg -> { // ...handle received messages... }); }
From source file:examples.VertxAmqpBridgeExamples.java
License:Apache License
public void example11(MessageConsumer<JsonObject> consumer) { consumer.handler(msg -> { // ...do something with received message...then reply... String replyAddress = msg.replyAddress(); if (replyAddress != null) { JsonObject amqpReplyMessagePayload = new JsonObject(); amqpReplyMessagePayload.put("body", "myResponse"); msg.reply(amqpReplyMessagePayload); }//from w w w . ja va2s.c om }); }
From source file:io.nonobot.core.client.impl.BotClientImpl.java
License:Apache License
@Override public void receiveMessage(ReceiveOptions options, String message, Handler<AsyncResult<String>> replyHandler) { String replyAddress = UUID.randomUUID().toString(); Future<String> reply = Future.future(); reply.setHandler(replyHandler);//from www. j a va 2s . c om MessageConsumer<String> consumer = vertx.eventBus().consumer(replyAddress); consumer.handler(msg -> { String content = msg.body(); if (content != null && !reply.isComplete()) { if (msg.replyAddress() != null) { msg.reply(null); } reply.complete(content); consumer.unregister(); } else { if (msg.replyAddress() != null) { msg.fail(0, "Already replied"); } } }); consumer.completionHandler(ar -> { if (ar.succeeded()) { Matcher botMatcher = botPattern.matcher(message); JsonObject msg = new JsonObject().put("replyAddress", replyAddress); msg.put("chatId", options.getChatId()); if (botMatcher.find()) { msg.put("respond", true); msg.put("content", botMatcher.group(1)); } else { msg.put("respond", false); msg.put("content", message); } vertx.eventBus().publish(inboundAddress, msg); vertx.setTimer(options.getTimeout(), timerID -> { if (!reply.isComplete()) { consumer.unregister(); reply.fail(new Exception("timeout")); } }); } else { replyHandler.handle(Future.failedFuture(ar.cause())); } }); }