我在使用Netty框架为UDP建立会话管理系统时遇到了一些问题。我对每个UDP远程客户端的新功能感到困惑。对于每个新的UDP远程客户端,该客户端是否获得新的ChannelPipelineFactory,或者是每个新远程客户端创建的新频道?
我有两个端口,端口161和端口162都是UDP端口,两者都将从众多UDP客户端接收数据。如何区分客户?我开始根据RemoteAddress
提供的DatagramPacket.sender()
创建会话管理服务,但我不知道是否可以安全地附加到ChannelHandlerContext
属性()链
答案 0 :(得分:1)
由于UDP连接较少,DatagramPacket.sender
将是您将消息路由到适当会话的唯一选项。对于应用程序,概念上只有一个ChannelPipelineFactory
,实际上只有一个Channel
用于UDP。据我所知,附加ChannelHandlerContext
是不安全的。处理多个客户的方法是使用Map
,将密钥作为DatagramPacket.sender
地址,将值作为session
。