背景:
我希望维护一个连接通道的服务器端注册表,但我还需要这个注册表通过一个众所周知的名称/ID 进行 KEY-ed - 每个连接的通道都是唯一的。
因此,我将使用字符串 id 作为每个连接通道的键 - (即客户端和服务器都知道它,但它不会是 GUID)。
当客户端连接并调用服务器端处理程序的 channelActive 方法时,我想从 ChannelHandlerContext 中提取此 Channel ID并存储此 (ID, Channel) 对。
当通道断开连接时 - 无论是客户端还是某些故障,我将从地图中删除 (ID, Channel) 对。
问题:
有没有办法在客户端 Connect 调用中传递此应用程序数据,以便服务器端处理程序可以在其 channelActive 方法中读取它?
我只能在“连接时”执行此操作吗?我想避免将此逻辑添加到实际的消息处理中,因为这纯粹是为了通道连接/断开识别。
谢谢