一、简单介绍
1.MQTT-即时通讯协议
mqtt broker即服务端
mqtt client即客户端
2.主要特点
- 使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合
- 对负载内容屏蔽的消息传输
- 使用 TCP/IP 提供网络连接
- 有三种消息发布服务质量:
“至多一次”:适用消息频繁发且丢失一两条不影响的场景,如:环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。
“至少一次”:确保消息到达,但消息重复可能会发生
“只有一次”:确保消息到达一次。优点是确保消息送达且有且仅有一次,缺点是系统开销大. - 小型传输,开销很小
- 使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制
3.下载安装(省略)
二、MQTT+Spring Boot
1.MQTT链接相关信息配置
server:
mqtt:
url: tcp://xxx.xx.xx:1883
topics: scrm_user/#
clientId: xxxx
maxInflight: 20
username: '***'
password: '***'
2.MQTT Bean Configuration
@Configuration
public class MqttConfig {
@Value("${server.mqtt.url}")
private String mqttUrl;
@Value("${server.mqtt.topics}")
private String mqttTopics;
@Value("${server.mqtt.username}")
private String mqttUserName;
@Value("${server.mqtt.password}")
private String mqttPassword;
@Value("${server.mqtt.maxInflight}")
private Integer mqttMaxInflight;
@Value("${server.mqtt.clientId}")
private String mqttClientId;
@Bean
public MqttPahoClientFactory mqttClientFactory() {
DefaultMqttPahoClientFactory factory = new DefaultMqttPahoClientFactory();
MqttConnectOptions connectOptions = new M