关于Netty中IdleStateHandler的疑问

我在开发后台和设备对接的程序,使用了 Springboot 和 netty,一个后台对接的设备较多,我需要根据各个设备不同的协议来设置向设备下发召测报文的间隔。

我目前使用了 IdleStateHandler,但是这个只能在 pipeline 初始化的时候设置 writeIdle 的间隔,而这个时候我并不知道设备的具体信息,设备具体信息的获取我写在了后续的 handler 里通过访问数据库获取的。

那么我应该怎么样做才能根据登录的设备协议来设置下发的间隔呢?

handler是可以动态增删的。

可以从ChannelHandlerContext中获取到ChannelPipeline

ChannelPipeline pipeline();

ChannelPipeline 可以动态的增删Handler

ChannelPipeline addFirst(String name, ChannelHandler handler);
ChannelPipeline addBefore(EventExecutorGroup group, String baseName, String name, ChannelHandler handler);
ChannelPipeline addAfter(String baseName, String name, ChannelHandler handler);
...

解决了,可以结贴了,谢谢大神