MQTT
安装MQTT客户端(mqttfx or mqttx):
sudo dpkg -i mqttfx-1.7.1-64bit.deb
snap install mqttx
SmartOT系统中已经默认安装了一个MQTT服务器,不能再安装了。
如果是一个全新的Ubuntu系统,可以安装一个MQTT服务器作为测试,目前主流的MQTT服务器为EMQX和Mosquitto:
-
安装EMQX:
sudo dpkg -i emqx-ubuntu20.04-4.2.7-x86_64.deb sudo emqx start emqx_ctl status
-
安装Mosquitto
sudo apt install mosquitto
EMQX的网页版DashBoard:
http://127.0.0.1:18083
user: admin
password: public
安装PythonMQTT库:
sudo pip3 install paho-mqtt
paho发布者(Publish):
import paho.mqtt.client as mqtt
def on_connect(client, userdata, flags, rc):
print("Connected with result code: " + str(rc))
def on_message(client, userdata, msg):
print(msg.topic + " " + str(msg.payload))
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.connect('broker.emqx.io', 1883, 600) # 600为keepalive的时间间隔
client.publish('fifa', payload='amazing', qos=0)
paho订阅者(Subscribe):
import paho.mqtt.client as mqtt
def on_connect(client, userdata, flags, rc):
print("Connected with result code: " + str(rc))
def on_message(client, userdata, msg):
print(msg.topic + " " + str(msg.payload))
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.connect('broker.emqx.io', 1883, 600) # 600为keepalive的时间间隔
client.subscribe('fifa', qos=0)
client.loop_forever() # 保持连接