0

我的 Spring webflux 控制器需要访问远程 TCP 服务器。如何将来自 TCP 服务器的响应流式传输到客户端?

就像是:

WebClient client = WebClient.create("http://example.com");

....

@GetMapping(value = "/account")
public Mono<String> account() {
  Mono<Account> account = client.get()
        .url("/accounts/{id}", 1L)
        .accept(APPLICATION_JSON)
        .exchange(request)
        .then(response -> response.bodyToMono(Account.class));

  return account;
}

但是使用 TcpClient(不是 WebClient)。

谢谢,

- 缺口

4

1 回答 1

2

不幸的是,SpringWebFlux确实有点专注于 HTTP。

有一个TcpClientin reactor-netty,但它的级别更低,需要一些netty知识(因为你必须自己执行诸如框架和解码之类的事情)。而且它没有Response类似的概念HttpClient,所以它不容易桥接成Mono/Flux然后你可以在你的控制器中转换......

因此,恐怕此时该特定用例没有现成的解决方案:/我建议您打开一个问题

于 2017-03-07T13:13:05.727 回答