0

从具有路由 URL 的路由顶点中,我想将 RoutingContext 对象发送到另一个顶点。我相信我们只能使用 vertx.eventBus().send() 将消息从路由顶点发送到其他动作顶点。我可以将 RoutingContext 对象作为消息发送吗?

在我正在做的路由器垂直 vertx.eventBus().<RoutingContext>send("address", routingContext)

在消费者垂直我正在做 vertx.eventBus().<RoutingContext>consumer("address").handler(message -> { RoutingContext routingContext = message.body(); LOGGER.info("routingContext body = "+routingContext.getBodyAsString()); });

但看起来 vertx 本身无法执行 'vertx.eventBus().send' 谁能告诉我如何使用 vertx.eventBus().send 方法发送 RoutingContext 对象?

4

1 回答 1

2

例如,如果您想通过 Vert.x EventBus 发送一个不是 JsonObject 或普通 Java 对象(如 a String)的对象,您需要实现自己的编解码器。

这意味着基本上描述了您想要转移对象的哪些部分。

您可以在此处查看实现自定义编解码器的示例:

https://github.com/vert-x3/vertx-examples/blob/master/core-examples/src/main/java/io/vertx/example/core/eventbus/messagecodec/util/CustomMessageCodec.java

在我看来,为 RoutingContext 实现它仍然没有多大意义。只需转移您实际需要的部分,而不是整个对象。

于 2019-08-16T21:23:53.757 回答