gpt4 book ai didi

java - Netty 3 中的channelOpen 和channelClosed 上游事件是否存在一对一的映射?

转载 作者:行者123 更新时间:2023-12-01 19:19:01 26 4
gpt4 key购买 nike

根据文档https://netty.io/3.6/api/org/jboss/netty/channel/ChannelEvent.html有 2 个上游事件改变 OPEN channel 的状态:

channelOpen (state = OPEN, value = true)

channelClosed (state = OPEN, value = false)

以及一个下游事件:

close (state = OPEN, value = false)

但是,我找不到任何有关上游channelOpen 和channelClosed 事件之间是否存在保证的一对一关系的文档。 IE。是否保证如果channelOpen事件被触发,则channelClosed事件也将被触发一次,无论哪一方(客户端或服务器)以及如何(优雅或不优雅)关闭套接字?

我想要实现的是一种限制应用程序中打开 channel 数量的机制。为了实现这一目标,我打算将 SimpleChannelHandler 的共享实例添加到每个 channel 管道中,并递增/递减计数器:

channelClosed 和channelOpen 方法:

https://netty.io/3.6/api/org/jboss/netty/channel/SimpleChannelHandler.html#channelOpen(org.jboss.netty.channel.ChannelHandlerContext,%20org.jboss.netty.channel.ChannelStateEvent) https://netty.io/3.6/api/org/jboss/netty/channel/SimpleChannelHandler.html#channelClosed(org.jboss.netty.channel.ChannelHandlerContext,%20org.jboss.netty.channel.ChannelStateEvent)

这种机制的实现方式是否正确?或者可能存在上游 ChannelClosed 事件未生成而需要检查下游事件的情况?

谢谢!

最佳答案

首先,netty 3.x 的生命周期将永远结束,因此您应该升级到 4.1.x。也就是说,一旦您收到打开,您也会收到关闭

关于java - Netty 3 中的channelOpen 和channelClosed 上游事件是否存在一对一的映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59382871/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com