Vertx:带有响应流的请求/响应

问题描述 投票:0回答:0

我想实现一个 Verticle,它可以通过事件总线以长时间运行的流响应请求。查看事件总线,支持请求/响应和发布/订阅模式——我想将它们组合成一种请求/订阅模式。

有了请求/响应,你会做这样的事情:

eventbus.request("address", myRequest).onSuccess(msg -> processResponse(msg)); //single response

我想要的是这样的:

eventbus.request("address", myRequest).handle(msg -> processNewResponse(msg)); // many responses over time

我不确定实现此目标的最佳方法是什么。一种可能的方法,我过去做过,当然可行但有点麻烦,是采用两阶段方法,您可以使用请求/响应设置临时流地址,然后订阅该地址,如下所示:

eventbus.request("address", myRequest)
    .onSuccess(msg -> eventbus.consumer(msg.body().getTempStreamAddress(), msg2 -> processNewResponse(msg2)))

但这意味着处理创建临时地址和管理 Verticle 上的订阅,我很乐意这样做,但前提是那是最好的选择,但我想知道我是否在这里遗漏了一个简单的技巧

vert.x vertx-eventbus
© www.soinside.com 2019 - 2024. All rights reserved.