微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

净值closeFuturesyncchannel; 块休息API

如何解决净值closeFuturesyncchannel; 块休息API

第一部分启动服务器,1)将其绑定在TCP端口上,2)等待服务器准备就绪(套接字正在监听)3)并返回关联的通道。

serverBootstrap.bind(tcpPort).sync().channel();
                 (1)           (2)       (3)

第二部分是等待主通道(侦听套接字)关闭closeFuture().sync()),在此关闭状态closeFuture将为您提供“关闭”操作的“未来”(意味着关闭服务器套接字),并sync等待将来完成该操作。channel()为您提供与第一次完全相同的频道,但现在已关闭

因此,您可能会在各种示例中找到此代码,因为通常情况下,您是在主线程中启动服务器(绑定),然后,如果不等待,主线程将结束,从而使JVM完成工作,因此您的服务器在启动后立即停止。

因此,总的来说,我们要做的是:

  • 启动服务器
  • 在管道中添加必要的处理程序以处理您的业务逻辑(当然还有网络协议)
  • 然后通过等待closeFuture来完成您的主线程,这样,一旦在您的业务逻辑中获得了要关闭的命令,就关闭了主通道,因此主线程也正在关闭

解决方法

我正在学习Netty,正在学习使用Spring Boot的一些教程。我的目标是创建一个应用程序,该应用程序设置了一个用于接收消息的tcp端口,并通过rest
api呈现消息。

大多数教程都说我应该添加这样的内容

serverChannel = serverBootstrap.bind(tcpPort).sync().channel().closeFuture().sync().channel();

开始净值。当我这样做时,我实现的其余服务无法正常工作。现在,当我使用以下代码片段启动应用程序时:

serverChannel = serverBootstrap.bind(tcpPort).sync().channel();

一切似乎都正常。有人可以向我解释什么可能导致此问题吗?

谢谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。