Error: Connection refused:Unacceptable protocol version

Desktop

x86-64  | 

v1.9.6.win64.exe

x86  | 

v1.9.6.win32.exe

ARM64  | 

v1.9.6.arm64.exe

 目前MQTT主流版本有两个,分别是MQTT3.1.1和MQTT5。MQTT3.1.1是在2014年10月发布的,   而MQTT5是在2019年3月发布的。

 

 

https://www.cnblogs.com/duanxz/p/5414784.html

MQTT协议(Message Queuing Telemetry Transport),翻译过来就是“消息队列遥测传输” ,是IBM公司于1999年提出的,现在最新版本是3.1.1。MQTT是一个基于TCP的发布订阅协议,设计的初始目的是为了极有限的内存设备和网络带宽很低的网络不可靠的通信,非常适合物联网通信。

 

实现MQTT协议需要:客户端和服务器端

MQTT协议中有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。

MQTT传输的消息分为:主题(Topic)和负载(payload)两部分

Topic,可以理解为消息的类型,订阅者订阅(Subscribe)后,就会收到该主题的消息内容(payload)

payload,可以理解为消息的内容,是指订阅者具体要使用的内容

1 CONNECT – 连接服务端:客户端到服务端的网络连接建立后, 客户端发送给服务端的第一个报文必须是CONNECT报文

2 CONNACK – 确认连接请求:服务端发送CONNACK报文响应从客户端收到的CONNECT报文。 服务端发送给客户端的第一个报文必须是CONNACK。如果客户端在合理的时间内没有收到服务端的CONNACK报文, 客户端应该关闭网络连接。合理的时间取决于应用的类型和通信基础设施。

3 PUBLISH – 发布消息:PUBLISH控制报文是指从客户端向服务端或者服务端向客户端传输一个应用消息。

4 PUBACK –发布确认:PUBACK报文是对QoS 1等级的PUBLISH报文的响应。

5 PUBREC – 发布收到( QoS 2, 第一步):PUBREC报文是对QoS等级2的PUBLISH报文的响应。 它是QoS 2等级协议交换的第二个报文。

6 PUBREL – 发布释放( QoS 2, 第二步):PUBREL报文是对PUBREC报文的响应。 它是QoS 2等级协议交换的第三个报文。

7 PUBCOMP – 发布完成( QoS 2, 第三步):PUBCOMP报文是对PUBREL报文的响应。 它是QoS 2等级协议交换的第四个也是最后一个报文。

8 SUBSCRIBE - 订阅主题:客户端向服务端发送SUBSCRIBE报文用于创建一个或多个订阅。 每个订阅注册客户端关心的一个或多个主题。 为了将应用消息转发给与那些订阅匹配的主题, 服务端发送PUBLISH报文给客户端。 SUBSCRIBE报文也( 为每个订阅) 指定了最大的QoS等级, 服务端根据这个发送应用消息给客户端。

9 SUBACK – 订阅确认:服务端发送SUBACK报文给客户端, 用于确认它已收到并且正在处理SUBSCRIBE报文。

10 UNSUBSCRIBE –取消订阅:客户端发送UNSUBSCRIBE报文给服务端, 用于取消订阅主题。

11 UNSUBACK – 取消订阅确认:服务端发送UNSUBACK报文给客户端用于确认收到UNSUBSCRIBE报文。

12 PINGREQ – 心跳请求:客户端发送PINGREQ报文给服务端的。 用于:1. 在没有任何其它控制报文从客户端发给服务的时, 告知服务端客户端还活着。2. 请求服务端发送 响应确认它还活着。3. 使用网络以确认网络连接没有断开。

13 PINGRESP – 心跳响应:服务端发送PINGRESP报文响应客户端的PINGREQ报文。 表示服务端还活着。

14 DISCONNECT –断开连接:DISCONNECT报文是客户端发给服务端的最后一个控制报文。 表示客户端正常断开连接。

 

 

服务端返回码说明如下。

MQTT 3.1和3.1.1

 

返回码返回信息原因

0

0x00 Connection Accepted

连接成功。

1

0x01 Connection Refused, unacceptable protocol version

服务器不支持设备端请求的MQTT协议版本。

2

0x02 Connection Refused, identifier rejected

clientId参数格式错误,不符合物联网平台规定的格式。例如参数值超出长度限制、扩展参数格式错误等。

3

0x03 Connection Refused, Server unavailable

网络连接已建立成功,但MQTT服务不可用。

4

0x04 Connection Refused, bad user name or password

username或password格式错误。

5

0x05 Connection Refused, not authorized

设备未经授权。

MQTT 5.0

 

返回码返回信息原因

0

0x00 Success

连接成功。

128

0x80 Unspecified error

未指定错误。

129

0x81 Malformed Packet

畸形报文。

130

0x82 Protocol Error

协议错误。

132

0x84 Unsupported Protocol Version

不支持的协议版本。

136

0x88 Server unavailable

服务器不可用。

137

0x89 Server busy

服务器繁忙。

138

0x8A Banned

禁止访问。

140

0x8C Bad authentication method

错误验证方法。

141

0x8D Keep Alive timeout

保活超时。

144

0x90 Topic Name invalid

Topic名无效。

147

0x93 Receive Maximum exceeded

超出接收最大值。

148

0x94 Topic Alias invalid

Topic别名无效。

149

0x95 Packet too large

报文长度超出限制。

150

0x96 Message rate too high

消息传输速率太高。

151

0x97 Quota exceeded

超出限额。

152

0x98 Administrative action

管理行为。

153

0x99 Payload format invalid

Payload格式无效。

154

0x9A Retain not supported

不支持消息保留。

155

0x9B QoS not supported

不支持的QoS。

156

0x9C Use another server

使用另一台服务器。

157

0x9D Server moved

服务器被移除。

158

0x9E Shared Subscription not supported

不支持的共享订阅。

159

0x9F Connection rate exceeded

超出连接速率。

 

精彩链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。