在Spring应用程序中,我有以下在Rest控制器中提交请求响应请求的工作代码:
@GetMapping("/request-response")
public ResponseEntity<Mono<Message>> requestResponseCtr() throws InterruptedException {
Mono<Message> message = this.rsocketRequesterMono.flatMap(
requester -> requester.route("request-response")
.data(new Message(...))
.retrieveMono(Message.class)
);
log.info("\nResponse was: {}", message);
return ResponseEntity.of(Optional.of(message));
}根据我对RSocket Java文档的理解,我需要替换retriveveMono(.)与send()一起提交一个失忆请求(在文档的第12页)。下面的代码应该可以工作。
@GetMapping("fire-and-forget")
public ResponseEntity<Mono<Void>> fireAndForget() throws InterruptedException {
log.info("\nFire-And-Forget...");
this.rsocketRequesterMono.flatMap(
requester -> requester.route("fire-and-forget")
.data(new Message(...))
.send()
);
return ResponseEntity.of(Optional.of(Mono.empty()));
}但是,它不起作用。在TCP调试工具上,它没有任何通信量。
什么是提交火灾的正确方式-不忘?
发布于 2020-06-15 08:00:51
这个电话
this.rsocketRequesterMono.flatMap(
requester -> requester.route("fire-and-forget")
.data(new Message(...))
.send()
);什么都没做因为什么都没有订阅。
你可能需要
ResponseEntity.of(Optional.of(this.rsocketRequesterMono.flatMap(
requester -> requester.route("fire-and-forget")
.data(new Message(...))
.send()
)));https://stackoverflow.com/questions/62267561
复制相似问题