物联网MQTT


MQTT

是一个客户端服务端架构的发布/订阅模式的消息传输协议

连接过程

MQTT客户端要想连接服务端,首先要向服务端发送CONNECT报文

名称 内容 解释
clinetId "client id name" 用于什么识别设备的id名称,必须唯一
cleanSession true 是否清除会话,重要信息不清除
username(可选) "name" 用户名
password(可选) "password" 密码
lastWillTopic(可选) "/haha"
lastWillQos(可选) 2
lastWillMessage(可选) "unexpected exit"
lastWillRetain(可选) false
keepAlive 60 (心跳时间间隔)用于服务端了解客户端连接情况

服务端收到后回复

名称 内容 解释
sessionPresent true 客户端要求服务端保存报文(cleanSession=false)且服务端保存了未发送成功的报文时,为true
returnCode 0 成功连接
1 连接被服务端拒绝,原因是不支持客户端的MQTT协议版本
2 连接被服务端拒绝,原因是不支持客户端标识符的编码。可能造成此原因的是客户端标识符编码是UTF-8,但是服务端不允许使用此编码。
3 连接被服务端拒绝,原因是服务端不可用。即,网络连接已经建立,但MQTT服务不可用。
4 连接被服务端拒绝,原因是用户名或密码无效。
5 连接被服务端拒绝,原因是客户端未被授权连接到此服务端。

相关软件

太极创客网上的一些软件分享 MQTT客户端软件:MQTTfx PubSubClient库PubSubClient

公用MQTT服务器

然也物联 (国内) Mosquitto (国外) HiveMQ (国外)
网址 http://www.ranye-iot.net http://www.mosquitto.org https://www.hivemq.com
MQTT服务器地址 test.ranye-iot.net test.mosquitto.org broker.hivemq.com
TCP 端口 1883 1883 1883
TCP/TLS 端口 8883 8883
WebSockets 端口 8080 8000
Websocket/TLS 端口 8081