目录
一、业务场景
硬件采集的数据传入EMQX平台(采用MQTT协议),java通过代码连接MQTT服务器,进行采集数据接收、解析、业务处理、存储入库、数据展示。
MQTT 是基于 发布(Publish)/订阅(Subscribe) 模式来进行通信及数据交换的。
二、本文只讲解java连接MQTT服务器进行数据处理
1、新建springboot项目,pom文件中直接引入下面的mqtt依赖
org.springframework.integration
spring-integration-mqtt
2、 编写MQTT工具类
package com.siborui.dc.mqtt;
import lombok.extern.slf4j.Slf4j;
import org.eclipse.paho.client.mqttv3.*;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
* MQTT工具类操作
*
* @author Mr.Qu
* @since v1.1.0 2020-01-10
*/
@Slf4j
@Component
public class MQTTConnect {
private String HOST = "tcp://127.0.0.1:1883"; //mqtt服务器的地址和端口号
private final String clientId = "DC" + (int) (Math.random() * 100000000);
private MqttClient mqttClient;
/**
* 客户端connect连接mqtt服务器
*
* @param userName 用户名
* @param passWord 密码
* @param mqttCallback 回调函数
**/
public void setMqttClient(String userName, String passWord, MqttCallback mqttCallback) throws MqttException {
MqttConnectOptions options = mqttConnectOptions(userName, passWord);
if (mqttCall