Netty用户事件

时间:2016-04-04 10:48:45

标签: netty

为了处理Netty(4.0.34)中任何用户生成的事件,我们在fireUserEventTriggered(event)上使用ChannelHandlerContext

调用管道中下一个处理程序的fireUserEventTriggered方法userEventTriggered(final ChannelHandlerContext ctx, final Object evt)时,可以随后处理生成的事件。

但是在下一个处理程序的userEventTriggered方法中,我无法访问存储在前一个处理程序中的AttributeMap。 netty是否为用户事件创建了新的上下文?

1 个答案:

答案 0 :(得分:2)

AttributeMap是基于每个处理程序定义的。这是一种为给定的处理程序 - 管道组合存储状态的方法,并且由于处理程序可以添加到多个管道,因此给定的处理程序实例甚至可以有多个与其关联的ChannelHandleContexts(如JavaDoc中所指定的) )

当您访问给定处理程序的ChannelHandlerContext实例时,您将访问此给定管道中 处理程序的状态。

要在处理程序之间传输数据,一种方法是对用户事件建模,以便存储要传输的数据,然后稍后可以在后续处理程序中检索它。