Mqtt在连续发布主题时订阅消息

时间:2015-05-18 10:14:49

标签: python mqtt

我正在尝试将消息发布到主题“新/主题”并从另一个主题“确定/主题”订阅消息 但它不起作用以下是我的代码:

def on_connect(client, userdata, flags, rc):
    print("Connected with result code "+str(rc))
    client.subscribe("OK/Topic")

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)

while True:
    mqttc.publish("New/Topic",str(strs))
    print "publish message " + str(strs)
    time.sleep(1)

mqttc.loop_forever()

任何人都知道如何在连续发布主题时订阅消息。

提前致谢。

2 个答案:

答案 0 :(得分:1)

你的while循环永远不会终止,所以代码永远不会到达mqttc.loop_start()函数。这就是导致您遇到问题的原因。

如果你将mqttc.loop_start调用移到while循环之前它应该做得更好,因为它会启动后台线程来处理传入的消息(并实际发送已发布的消息)

答案 1 :(得分:0)

以下代码将完美运行:

determinePageSize