在netty通道管道中使用多个编码器

时间:2012-05-14 10:59:54

标签: java netty

我必须在netty频道上发送不同类型的消息,然后在发送之前对这些消息进行编码。我在netty频道中注册多个OneToOneEncoder,每个encode应该采取行动在单一类型的消息上。我检查msg的类型,编码是否为此编码器的正确类型,或者如果它不是(编码器的)特定类型,则返回msg(没有变换)。这是一种有效的设计方法吗?

我面临的问题是:有时会导致各种下游异常(在解码器中),如IndexOutOfBounds。

更难的是有时它能正常工作。我确信在编码/解码过程中会出现一些问题。究竟是什么让我望而却步。这里有哪些明显的错误?

编辑:我的问题是关于一般设计方法..如果这是正确的,那么我可以自己处理代码中的错误..

1 个答案:

答案 0 :(得分:1)

您可以在ChannelPipeline中拥有多个OneToOneEncoder。请确保这些是线程安全的,因为可以从任何线程发送下游事件。