2016-01-22 94 views
1

我试图发展与Netty的下面用例:(8900端口)上多端的Netty套接字服务器

  1. 客户端连接到中间服务器。
  2. 客户端发送带有配置的处理器请求到另一台机器。
  3. 第三台基于配置的机器启动一个处理器。
  4. 处理器根据配置中标识的端口(例如端口8901)连接到启动处理器的服务器。
  5. 服务器现在基于两者之间共享的匹配唯一散列来绑定客户端和处理器。
  6. 为每个新的客户端连接创建新的处理器。

客户端连接不成问题。我有一个ClientHandler来处理这些请求。但是我注册ProcessorHandler时(它必须根据客户端发送的配置动态绑定)并且为特定客户端服务。

任何帮助将非常感激,因为我目前就如何从ClientHandler的,一旦一个处理器配置是送的,我可以在服务器上启动一个新的服务器套接字和链接客户端它的处理器难倒。

客户端和处理器共享一个唯一的散列号,可用于识别哪个处理器应该服务于哪个客户端。

我基本上一直在使用Netty HexProxy Example想法,但我不需要客户端套接字,而需要另一个服务器套接字来为处理器服务。我正在考虑通过向其他管道添加处理程序或执行与Netty SecureChat Example类似的操作来连接两者。

回答

0

通过重新想象我能解决这个问题的场景。

而不是将客户端视为客户端,将处理器视为服务于特定客户端请求的服务器我将两者视为连接到聊天服务器(中介服务器)的客户端。

任意服务器端口是通过将引导程序发送到一个HandshakeHandler来建立的,该协议绑定并同步当前未绑定的端口。

它也是HandshakeHandler,它通过独特的哈希将客户端和处理器连接到特定的ChannelGroup,并根据需要为每个通道重新配置通道管道(一旦客户端和处理器之间的握手成功完成,就自行移除)。

相关问题