2017-08-24 22 views

回答

0

使用DeliveryOptions您可以在Verticles之間傳遞消息。

考慮下面的例子:

// MainVerticle將接收數據,我們將要發送給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); 

    }); 

} 

} 

//發送這些消息給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(); 
    } 

} 

我希望這會幫助你:)

+0

謝謝您的回答。我仍然不明白這將如何幫助我完成轉發帶有標題的消息。 –

+0

你可以使用'message.headers()'從響應主體中檢索一個頭文件並按需要使用它。 – Flash

+0

是的,我可以做到這一點。實際上,我想轉發郵件,而不是像轉發問題中提到的那樣,在轉發的每個點都複製所有郵件頭和其他元信息。 –