MQTT消息订阅与解析
-
通过配置文件创建mqtt客户端
1.1 xml文件中添加mqtt客户端配置项
<!-- mqtt客户端 --> <bean id="clientFactory" class="org.springframework.integration.mqtt.core.DefaultMqttPahoClientFactory"> <property name="userName" value="test" /> <property name="password" value="test" /> </bean> <!-- 消息适配器 --> <int-mqtt:message-driven-channel-adapter id="mqtttest" client-id="mqttTest" url="tcp://MQTT服务器地址:1883" topics="/data/#" qos="2" client-factory="clientFactory" auto-startup="true" send-timeout="12" channel="startCase" /> <int:channel id="startCase" /> <!-- 消息处理类 --> <int:service-activator id="startCaseService" input-channel="startCase" ref="mqttCaseService" method="messageArrived" /> <bean id="mqttCaseService" class="com.iamapsycho.mqtt.DataHandler" />
1.2 创建消息解析的类DataHandler
public class DataHandler{ public void messageArrived(Message<?> message) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException { //获取消息体订阅的主题 final String topic = (String) message.getHeaders().get("mqtt_topic"); //获取消息体中的消息 String contentStr = message.getPayload().toString(); //