mqtt 5,连不上的问题

fengchujun

官方指明了 只支持 mqtt3.11和 mqtt3 协议的

但是现在很多功能 都需要 MQTT5,

我直接 把 protocol_level 改成 5 连不上

用其它的 MQTT客户端 用 MQTT5 连接

服务端收到信息是 CONNECT(Q0, R0, D0ClientId=id, ProtoName=MQTT, ProtoVsn=5, CleanStart=true, KeepAlive=60, Username=admin, Password=**) ,可以连上

用workeman 的MQTT3.11 连接
服务端收到信息是 CONNECT(Q0, R0, D0ClientId=id, ProtoName=MQTT, ProtoVsn=4, CleanStart=true, KeepAlive=60, Username=admin, Password=**) 可以连上,只一字之差

直接 把 protocol_level 改成 5 确连不上,好像是报文的编码不对了。

哪个大神帮忙看看

1065 1 2
1个回答

walkor

目前 workerman/mqtt不支持MQTT5,有需要欢迎改进发PR贡献代码

  • fengchujun 2022-06-17

    已经找到原因了,确实是不支持,MQTT5 加了 Properties,所以报文加了一位,所以服务端解不出来。 swoole 那边有, https://github.com/simps/mqtt ,我看了一下,和mqtt3.11 改动并不大,哪位动手能力强的大哥,可以搞一搞,让workerman 早日支持 MQTT5

  • czf 2022-06-17

    自己动手,丰衣足食

  • fengchujun 2022-06-17

    我自己用是能搞定,只是都是抄别人的,用土方法改一改,不好意思贴出来

年代过于久远,无法发表回答
🔝