FrameDecoder在非单连接情况下不安全吗?

时间:2012-02-13 02:18:25

标签: java netty

FrameDecoder使用一个ChannelBuffer实例(字段累积)来汇总所有Channel的原始数据,然后传递给解码。通道A的整个帧(app level frame)的数据的一部分写入累积,然后整个帧的通道B的数据的一部分写入累积。据我所知,累积应该使用ChannelLocal为不同的Channel存储不同的实例以避免这种情况。情况是否存在或我理解错误的代码?

1 个答案:

答案 0 :(得分:1)

您应该为每个新连接(通道)使用扩展FrameDecoder的类的新实例。对于未标记@Sharable [1]注释的所有ChannelHandler都是如此。

[1] http://netty.io/docs/stable/api/org/jboss/netty/channel/ChannelHandler.Sharable.html