百度天工云mqtt测试中的一个BUG

来源:互联网 发布:网站80端口开放攻击 编辑:程序博客网 时间:2024/05/21 09:06

一、环境

win7    python2.7.13   

二、报错


Traceback (most recent call last):
  File "E:/project/test/mqtt/mqtt_test.py", line 35, in <module>
    client.connect(endpoint, port, 60) #连接服务 keepalive=60
  File "D:\python2713\install\lib\site-packages\paho\mqtt\client.py", line 768, in connect
    return self.reconnect()
  File "D:\python2713\install\lib\site-packages\paho\mqtt\client.py", line 940, in reconnect
    return self._send_connect(self._keepalive, self._clean_session)
  File "D:\python2713\install\lib\site-packages\paho\mqtt\client.py", line 2127, in _send_connect
    "!H" + str(len(protocol)) + "s"+ "BBH", len(protocol), protocol, proto_ver, connect_flags, keepalive)
struct.error: cannot convert argument to integer


三、解决

源代码:

"!H" + str(len(protocol)) + "s"+ "BBH", len(protocol), protocol, proto_ver, connect_flags, keepalive)

改为:

"!H" + str(len(protocol)) + "s"+ "BBH", len(protocol), protocol, 4, connect_flags, keepalive) # change by ruoyun at 171030

原因:

通过打印变量发现

proto_ver  并没有不是以为变量形式传入,导致本来应该传入4,结果传入一个字符串'MQTTv311'

原创粉丝点击