2017-08-24 1 views

Répondre

0

En utilisant DeliveryOptions, vous pouvez transférer des messages entre les verticles.

Prenons exemple suivant:

// MainVerticle recevra les données et nous allons envoyer à MessagingVerticle

public class MainVerticle extends AbstractVerticle { 

@Override 
public void start(Future<Void> fut) { 
    //your logic goes here for message object to pass 
    MessageConsumer<Object> mc = vertx.eventBus().consumer("your_addressToServer").handler(message -> { 

    Object message = message.body(); 

    final DeliveryOptions options = new DeliveryOptions().setCodecName("any_messaging_address_name"); 
    vertx.eventBus().send("any_messaging_address_name", Object(message object to pass) , options); 

    }); 

} 

} 

// Envoyer les messages à MessagingVerticle

public class MessagingVerticle extends AbstractVerticle { 

@Override 
public void start(Future<Void> fut) { 
    vertx.eventBus().<Object>consumer("any_messaging_address_name", 
      message -> { 
       Object messageCommand = message.body(); // received object from MainVerticle     
      }); 
    fut.complete(); 
    } 

} 

J'espère que cela va vous aider :)

+0

Merci pour votre réponse. Je ne comprends toujours pas comment cela pourrait m'aider à réaliser des messages d'expédition avec des en-têtes intacts. –

+0

vous pouvez utiliser 'message.headers()' pour récupérer un en-tête du corps de la réponse et l'utiliser comme vous le souhaitez. – Flash

+0

Oui, je peux le faire. En fait, je veux transmettre le message sans copier tous les en-têtes et autres méta-informations à chaque point de retransmission, comme je l'ai mentionné dans la question. –