我正在尝试使用Netty开发以下用例:
客户端连接不是问题。我有一个处理这些请求的ClientHandler。但是我在注册ProcessorHandler时遇到了问题(必须根据客户端发送的配置动态绑定)并使其服务于特定的客户端。
任何帮助都会非常感激,因为我目前很难理解,从ClientHandler开始,一旦发送了处理器的配置,我就可以在服务器上启动一个新的服务器套接字并将客户端链接到它的处理器。
客户端和处理器共享一个唯一的哈希值,可用于识别哪个处理器应该为哪个客户端服务。
我基本上一直在使用Netty HexProxy Example的想法,但我需要另一个服务器套接字来代替客户端套接字。我想通过向另一个管道添加处理程序或执行与Netty SecureChat Example类似的操作来链接两者。
答案 0 :(得分:0)
通过重新设想场景,我能够解决这个问题。
不是将客户端视为客户端而将处理器视为服务于特定客户端请求的服务器,而是将其视为连接到聊天服务器(中间服务器)的客户端。
通过将引导程序发送到HandshakeHandler来建立任意服务器端口,HandshakeHandler绑定并同步当前未绑定的端口。
也是HandshakeHandler,它通过唯一的哈希,将客户端和处理器连接到一个特定的ChannelGroup,并根据需要为每个通道重新配置通道管道(一旦客户端和处理器之间的握手成功完成,就自行移除)。