Reactor Netty TCP 客户端-响应式编程-012

发布于:2024-05-07 ⋅ 阅读:(27) ⋅ 点赞:(0)

 🤗 ApiHug × {Postman|Swagger|Api...} = 快↑ 准√ 省↓

  1. GitHub - apihug/apihug.com: All abou the Apihug   
  2. apihug.com: 有爱,有温度,有质量,有信任
  3. ApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplace

  The Next Generation API Development Platform - ApiHug 

api-hug-contact

例子代码: Reactor Client 测试代码open in new window

#创建

要将TCP客户端连接到给定的端点,您必须创建并且配置一个TcpClient 实例。默认情况下,hostlocalhostpost12012。下面是创建一个TcpClient的例子:

public static void main(String[] args) {
  Connection connection =
      TcpClient.create() // <1>
          .connectNow(); // <2>

  connection.onDispose().block();
}
  1. <1> 创建一个TcpClient 实例用来进行的配置操作。
  2. <2> 用阻塞的方式进行连接操作,并且等待它初始化完成。

返回的 Connection 对象提供了简单的连接相关的API,包括disposeNow() ,调用这个方法会以阻塞的方式关闭客户端。

#Host和Port

想要连接特定的host和port,您可以使用以下方式来配置TCP客户端。示例如下:

public static void main(String[] args) {
  Connection connection =
      TcpClient.create()
          .host("example.com") // <1>
          .port(80) // <2>
          .connectNow();

  connection.onDispose().block();
}
  1. <1> 配置TCP的host
  2. <2> 配置TCP的port

#预热

默认情况下,TcpClient初始化资源的操作在需要使用的时候才进行。这意味着初始化加载的时候connect operation会占用额外的时间:

  1. 事件循环组 Event loop group
  2. 主机名解析器 -- 这个是比服务器端多的东西
  3. native传输库(比如Epoll
  4. 用于安全性的native库(比如OpenSsl

当您需要预加载这些资源的时候,您可以按照以下方式来配置TcpClient:

public stati