事件得到了错误的NIO工作者

时间:2011-09-08 05:32:02

标签: netty

我正在使用Netty(3.2.3版本)的UDP协议运行客户端 - 路由器 - 服务器场景

我看到客户端和服务器频道在NIO工作人员中注册良好, 但是从服务器返回的响应被分配给错误的Worker, (NIODatagramWorker)因此它是一个不同的选择器,并且消息到达错误的管道(就好像它来自客户端)。

请告知, 亚伊尔

1 个答案:

答案 0 :(得分:0)

Netty UDP有点棘手。 UDP实际上只有一个管道,因此如果您更改管道中的选择器或处理程序,它可能没有预期的影响。请查看Netty用户组中的UDP Woes link,其中有Trustin Lee对此行为的解释。

因此,使用UDP时的一般情况将是
1)用解码器和编码器创建一个管道工厂和管道 2)使用散列映射或类似的数据结构来查找传入数据并将其路由到您正在进行的正确会话 3)当你回写时,使用write(data,remoteSocketAddress)方法代替正常的通道写方法。