Java 使用Reactor Netty连接到服务器消息队列

Java 使用Reactor Netty连接到服务器消息队列,java,httpclient,project-reactor,reactor-netty,Java,Httpclient,Project Reactor,Reactor Netty,我正在尝试使用Reactor Netty连接到docker容器上运行的消息队列。我以独立的方式做这件事,因为依赖性问题,所以不使用SpringFlux 从Reactor Netty文档中的示例中,我看到了一种连接到服务器并获得响应的方法: public static void main(String[] args) { String response = HttpClient.create() .

我正在尝试使用Reactor Netty连接到docker容器上运行的消息队列。我以独立的方式做这件事,因为依赖性问题,所以不使用SpringFlux

从Reactor Netty文档中的示例中,我看到了一种连接到服务器并获得响应的方法:

public static void main(String[] args) {
        String response =
                HttpClient.create()
                          .headers(h -> h.add("my header", my_header)
                          .get()
                          .uri(my_uri)
                          .responseContent() 
                          .aggregate()       
                          .asString()        
                          .block();
    }
但是,当我稍后尝试通过System.out.println()显示输出时,什么也没有发生

我还试图了解如何使用:

磁通响应(双功能接收器)

但我不确定该怎么办。 我在文档中看到了一个名为Connection的类,它使用TCPClient并具有subscribe方法

我有点迷路了,你能告诉我在反应堆Netty中不使用弹簧通量的情况下实现这一点的正确方向吗

多谢各位

编辑:

经过一些实验,我得到了这个:

private Disposable subscribe() {
    return HttpClient.create()
               .headers(h -> h.add("my header", my_header)
               .get()
               .uri(my_uri)
               .response((res, bytes) - > {
                   System.out.println(bytes.asString());
                   return bytes.asString();})
               .subscribe();
}

这给了我一个难题,我如何使用它来实际读取响应的主体?

因此,我想出了如何使用
jackson
库,从服务器接收数据,甚至将数据转换为JSON,以便代码更容易读取

private Disposable subscribe() {
    return HttpClient.create()
               .headers(h -> h.add("my header", my_header)
               .get()
               .uri(my_uri)
               .response((resp, bytes) -> {
                    return bytes.asString();
                })
                .subscribe(response -> {
                    try {
                        consumeData(new ObjectMapper()
                                .readValue(response, MyData.class));
                    } catch (IOException ex) {
                        System.out.println("ERROR converting to json: " + ex);
                    }
                    });
}

似乎在使用subscribe()方法时,我可以监听传入的响应并对其进行处理。我仍然需要添加一种方法,以便在服务器停止或消息队列关闭时关闭连接,这样客户端就不会挂起不存在的消息队列。

带有
块的示例应该可以运行,如果不是这样,请打开一个问题。您还可以通过添加
.wiretap(true)
来跟踪网络流量。