之前总结过两篇关于MQTT消息发布及消息订阅的文章,很多朋友都觉得不错,不过也有些小疑问,特别是关于mqtt消息订阅的,如何在项目应用中,做到动态添加Topic及监听消息?很多朋友对此都有疑问,却又不知如何下手,网上资料也不多,今天就抽个空,简单做个介绍,给大家做个参考,实际项目还要做优化。对于只要求做消息订阅动态主题的朋友,只需看上半部分就够了;如果有需求,想要将mqtt封装成jar脱离具体业务项目,可以参考整篇文章。
在MQTT功能之消息订阅处理文章中,我们将Mqtt的配置都写成一个配置类,并在配置类中实现类静态的消息监听,这次,我要将Mqtt的配置抽离封装成一个jar,然后在demo中引用这个jar。首先,我们对mqtt的订阅通道做调整:
看下原来我们怎么做的,在配置监听主题inbound里,定义MqttPahoMessageDrivenChannelAdapter adapter初始化并配置监听主题hello,hello1,这种方式是静态配置,项目运行后就不能再改变监听的topic了;
改变后,将MqttPahoMessageDrivenChannelAdapter adapter定义成一个全局变量,还是在inbound方法里初始化,只不过,初始化时不设置主题,改成调用adapter方法提供的addTopic方法添加主题。
看到这里,朋友们会有疑问,这有什么不一样?不就只是改变了监听topic的设置方式嘛,项目运行后,还是改变不了。
没错,不过,可能有些朋友已经想到,后面要怎么做了。
就是写两个接口,一个是添加监听主题Topic接口