我正在订阅关于Qos=2的主题“确定/主题”的消息,但有时我没有通过Qos=2获得消息发布,遵循我的订阅代码:
def on_connect(client, userdata, flags, rc):
print("Connected with result code "+str(rc))
client.subscribe("OK/Topic",2)
def on_message(client, userdata, msg):
print(" Topic : "+str(msg.topic)+" and Message is : "+str(msg.payload))
def on_subscribe(client, userdata,mid, granted_qos):
print "userdata : " +str(userdata)
strs="my-message-to-publish"
mqttc = mqtt.Client("Python-MQTT-Pub-Sub")
mqttc.on_connect = on_connect
mqttc.on_message = on_message
mqttc.on_subscribe = on_subscribe
mqttc.connect("IP", PORT, 60)
mqttc.start_loop()
while True:
mqttc.publish("New/Topic",str(strs))
print "publish message " + str(strs)
time.sleep(1)
我的出版商关于主题“确定/主题”的代码如下:
^{pr2}$如果我发布10条消息,我会在订阅服务器上收到7-8条消息,而不是10条 有人知道我为什么漏掉一些信息。在
谢谢。。!!!在
在on_publish方法中调用disconnect很可能会在完整的QOS2进程干净完成之前关闭连接。在
不要使用publish和on_publish断开连接,请尝试使用单一方法在一个同步方法中执行完全连接、发布和清理:
相关问题 更多 >
编程相关推荐