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

标签 java netty

FrameDecoder 使用一个 ChannelBuffer 实例(字段累加)来汇总所有 Channel 的原始数据,然后传递给解码。有可能 channel A 的整帧(应用级帧)的部分数据写入累加,然后 channel B 的整帧数据的部分写入累加。据我了解,累积应该使用 ChannelLocal 来存储不同 Channel 的不同实例,以避免这种情况。这种情况确实存在还是我对代码理解错误?

最佳答案

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

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

关于java - FrameDecoder在非单连接情况下不安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9254800/

相关文章:

java - 如何在 Weblogic 11g 上设置到 ActiveMQ 的 JMS 桥

java - Netty:在 ChannelBuffer 中来回交换 ByteOrder

java - 当我们将信任管理器与 trustCertCollectionFile 一起使用时,Netty 会跳过主机名验证

java - 游戏服务器网关设计

c# - Netty protobuf 和 google csharp proto 使用

java - storm 0.9.0.1 与 Netty 的 supervisor 通信

java - 在同一个项目中使用 spring mvc 应用程序和 jersey 是否存在潜在问题?

java - EMR 集群引导失败(超时)发生在我初始化集群的大部分时间

JAVA ObjectNode 获取为空

java - 编写自定义代码来计算 BigDecimal 幂