我在开发后台和设备对接的程序,使用了 Springboot 和 netty,一个后台对接的设备较多,我需要根据各个设备不同的协议来设置向设备下发召测报文的间隔。
我目前使用了 IdleStateHandler,但是这个只能在 pipeline 初始化的时候设置 writeIdle 的间隔,而这个时候我并不知道设备的具体信息,设备具体信息的获取我写在了后续的 handler 里通过访问数据库获取的。
那么我应该怎么样做才能根据登录的设备协议来设置下发的间隔呢?
我在开发后台和设备对接的程序,使用了 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);
...
解决了,可以结贴了,谢谢大神