【发布时间】:2020-05-15 09:03:33
【问题描述】:
我有一个用 vert.x + 响应式扩展编写的两个 verticle 服务器。 HTTP 服务器 verticle 使用事件总线向 DB verticle 发送请求。在收到来自 DB verticle 的响应(通过事件总线)后,我使用 rxEnd 将响应发送到 http 客户端。但是,客户似乎没有收到此响应并最终超时。如果我改用 end(),一切正常。我使用邮递员来测试这个 REST API。将 DB Verticle 的结果转发到客户端的代码请参见下文。
routerFactory.addHandlerByOperationId("createChargePoints", routingContext -> {
RequestParameters params = routingContext.get("parsedParameters");
RequestParameter body = params.body();
JsonObject jsonBody = body.getJsonObject();
vertx.eventBus().rxRequest("dbin", jsonBody)
.map(message -> {
System.out.println(message.body());
return routingContext.response().setStatusCode(200).rxEnd(message.body().toString());
})
.subscribe(res -> {
System.out.println(res);
}, res -> {
System.out.println(res);
});
});
【问题讨论】:
标签: vert.x