即时修改 netty 通道选项

Modifying netty channel options on the fly

在我的 netty 应用程序中,我 bootstrap 一个带有 EpollChannelOption.TCP_MD5SIG 的服务器通道并提供了一个 IP 密钥映射:

        Map<InetAddress, byte[]> md5keys = …..//set initial peer-ips and keys

        ServerBootstrap b = new ServerBootstrap();
        b.group(bossGroup, workerGroup)
         .channel(EpollServerSocketChannel.class)
         .handler(new LoggingHandler(LogLevel.INFO))
         .childHandler(new MyServerInitializer());
        b.childOption(ChannelOption.SO_KEEPALIVE, true);
        b.childOption(ChannelOption.TCP_NODELAY, true);
        b.option(EpollChannelOption.TCP_MD5SIG, md5keys);

是否可以在通道已经激活并为客户端提供服务后更改 md5keys 映射(例如添加新 IP)而不中断与这些客户端的通信?

当然可以 channel.config().setOption(...).