当前位置: 首页 > 知识库问答 >
问题:

转换到通道非活动状态是否清除了 Netty 中的管道?

邵飞鸿
2023-03-14

通道转换为ChannelInactive状态是否会清除关联的管道?在一个单元测试中,我注意到在添加了一个处理程序,然后客户端断开连接后,尝试删除该处理程序会导致NoSuchElementFoundException。我正在努力解释这种行为,任何指导都将不胜感激。

我的可能信道状态模型来自“Netty in Action ”,它提供了这个图。


共有1个答案

陆子默
2023-03-14

是的,一旦Channel变为非活动状态并未注册,它将拆除ChannelPipeline,这意味着它将删除所有以前添加的处理程序。

 类似资料:
  • 我正在尝试使用动态ChannelHandler管道实现Netty 4. X。正如人们建议的“出于性能考虑,在运行时使用调用而不是管道修改”,我实现了一个Server、一个RouterInoundHander和一个Client来测试这个理论。但它不起作用。这是我的代码 计算机网络服务器 RouterInboundHandler 和客户 如代码所示,在Channel的连接初始化阶段创建了Channel

  • 无状态管道是纯粹的功能,通过输入数据流动而不记住任何东西或引起可检测的副作用。 大多数管道是无状态的。 我们使用的CurrencyPipe和我们创建的长度管是无状态管的示例。 状态管道是能够管理它们转换的数据的状态的管道。 创建HTTP请求,存储响应并显示输出的管道是有状态的管道。 有状态管道应谨慎使用。 Angular 2提供 ,这是有状态的。 View Example 实现有状态管道 // n

  • 我正在使用netty 4.0。25编写netty HTTP服务器的最终步骤。我需要根据HTTP GET请求中的一些参数在管道中添加各种处理程序。 如果多个请求来自同一连接,则使用相同的管道。Request1可能需要Handler1,Request2可能需要Handler2,Request3可能需要Handler3。假设请求以Request1、Request2、Request3的形式出现。Reque

  • 我的目标是有一个Flink流程序,保留最后的N个id,其中id是从事件中提取的。接收器是一个Cassandra存储区,因此可以随时获取ID列表。重要的是,卡桑德拉在每一次事件发生时都要立即得到最新消息。

  • 问题内容: 因此,我正在使用下载管理器在我的应用程序中下载多个文件。开始某些活动之前,我需要这些文件才能完成下载。如何检查是否有活动的下载,所以我可以告诉用户等待下载完成。然后,当它们完成时,我需要使按钮可见。我已经用谷歌搜索过,甚至自己(盲目地)尝试了一些代码,但没有任何效果。如果有人可以向正确的方向推动我,我将不胜感激。 问题答案: 使用打听下载。调用时,返回值是下载的ID。您还可以按状态查询

  • 我在玩QUARKUS,我试图创建摄取服务,它将数据发送到kafka或另一个RESTendpoint。我已经向项目添加了“夸克斯-小黑麦-反应性-消息传递-Kafka”和“夸克斯-反应性-消息传递-超文本传输协议”依赖项。我想只有一个特定的管道,即超文本传输协议- 现在的问题是,即使我有Kafka连接器注释在我的application.propertues,Kafka的健康检查仍然运行,并显示Kaf