官方指明了 只支持 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 确连不上,好像是报文的编码不对了。
哪个大神帮忙看看
目前 workerman/mqtt不支持MQTT5,有需要欢迎改进发PR贡献代码
已经找到原因了,确实是不支持,MQTT5 加了 Properties,所以报文加了一位,所以服务端解不出来。 swoole 那边有, https://github.com/simps/mqtt ,我看了一下,和mqtt3.11 改动并不大,哪位动手能力强的大哥,可以搞一搞,让workerman 早日支持 MQTT5
自己动手,丰衣足食
我自己用是能搞定,只是都是抄别人的,用土方法改一改,不好意思贴出来