python3 mqtt 釋出以及訂閱
阿新 • • 發佈:2020-08-19
安裝庫
pip3 install paho-mqtt
釋出話題
import paho.mqtt.client as mqtt import time import sys HOST = "103.77.337.89" PORT = 1883 def on_connect(client, userdata, flags, rc): print("Connected with result code " + str(rc)) def on_subscribe(client,userdata,mid,granted_qos): print("訊息傳送成功") client訂閱話題= mqtt.Client(protocol=3) client.username_pw_set("admin", "password") client.on_connect = on_connect client.on_subscribe = on_subscribe client.connect(host=HOST, port = PORT, keepalive=60) # 訂閱頻道 time.sleep(1) i = 0 while True: try: # 釋出MQTT資訊 sensor_data = "test" + str(i) client.publish(topic="public", payload=sensor_data.encode("utf-8"), qos=0) time.sleep(3) i += 1 except KeyboardInterrupt: print("EXIT") client.disconnect() sys.exit(0)
import time import paho.mqtt.client as mqtt # The callback for when the client receives a CONNACK response from訂閱話題the server. HOST = "103.77.337.89" PORT = 1883 def on_connect(client, userdata, flags, rc): if rc == 0: print("連線成功") print("Connected with result code " + str(rc)) def on_message(client, userdata, msg): print(msg.topic + " " + str(msg.payload)) client = mqtt.Client(protocol=3) client.username_pw_set("admin", "password") client.on_connect = on_connect client.on_message = on_message client.connect(host=HOST, port = PORT, keepalive=60) # 訂閱頻道 time.sleep(1) client.subscribe("public") #client.subscribe([("public", 0), ("test", 2)]) client.loop_forever()
import time import paho.mqtt.client as mqtt # The callback for when the client receives a CONNACK response from the server. HOST = "103.77.337.89" PORT = 1883 def on_connect(client, userdata, flags, rc): if rc == 0: print("連線成功") print("Connected with result code " + str(rc)) def on_message(client, userdata, msg): print(msg.topic + " " + str(msg.payload)) client = mqtt.Client(protocol=3) client.username_pw_set("admin", "password") client.on_connect = on_connect client.on_message = on_message client.connect(host=HOST, port = PORT, keepalive=60) # 訂閱頻道 time.sleep(1) client.subscribe("SJHTopic2") #client.subscribe([("public", 0), ("test", 2)]) client.loop_forever()