Netty UDP会话管理

时间:2014-04-13 19:16:47

标签: java udp netty

我在使用Netty框架为UDP建立会话管理系统时遇到了一些问题。我对每个UDP远程客户端的新功能感到困惑。对于每个新的UDP远程客户端,该客户端是否获得新的ChannelPipelineFactory,或者是每个新远程客户端创建的新频道?

我有两个端口,端口161和端口162都是UDP端口,两者都将从众多UDP客户端接收数据。如何区分客户?我开始根据RemoteAddress提供的DatagramPacket.sender()创建会话管理服务,但我不知道是否可以安全地附加到ChannelHandlerContext属性()链

1 个答案:

答案 0 :(得分:1)

由于UDP连接较少,DatagramPacket.sender将是您将消息路由到适当会话的唯一选项。对于应用程序,概念上只有一个ChannelPipelineFactory,实际上只有一个Channel用于UDP。据我所知,附加ChannelHandlerContext是不安全的。处理多个客户的方法是使用Map,将密钥作为DatagramPacket.sender地址,将值作为session