在python中使用到mqtt进行相关的操作可以用在平台操作,接收相关的mqtt指令和进行相关的处理。在实际的使用中可以通过安装paho-mqtt模块来实现mqtt的导入。 pip install paho-mqtt 关于MQTT的模块定义: import paho.mqtt.client as mqtt import json import time import threading import config def on_connect(client, userdata, flags, rc): print("Connected with result code "+str(rc)) client.subscribe(config.TOPICSub) def on_message(client, userdata, msg): strMsg = str(msg.payload.decode('utf-8')) # print("主题:"+msg.topic+" 消息:"+str(msg.payload.decode('utf-8'))) print("主题:" + msg.topic + " 消息:" + strMsg) train(strMsg) return strMsg def on_subscribe(client, userdata, mid, granted_qos): print("On Subscribed: qos = %d" % granted_qos) def on_disconnect(client, userdata, rc): if rc != 0: print("Unexpected disconnection %s" % rc) def train(Msg): print('收到mqtt消息',Msg) data = config.TOPICSub param = json.dumps(data) client = mqtt.Client(config.CLIENTID0) def mqttPublish(param): client.publish(config.TOPICPub,payload=param,qos=0) def mqttSubcribe(Topic): #订阅 取消订阅一个再订阅一个 client.unsubscribe(config.TOPICSub) config.TOPICSub = Topic time.sleep(0.1) client.subscribe(config.TOPICSub,qos=0) def mqttCommunication(): #client = mqtt.Client(config.CLIENTID0) client.username_pw_set(config.USERNAME0, config.PASSWD0) client.on_connect = on_connect client.on_message = on_message client.on_subscribe = on_subscribe client.on_disconnect = on_disconnect client.connect(config.HOST0, config.PORT0, 60) client.loop_start() def main(): mqttThread = threading.Thread(target=mqttCommunication) mqttThread.start() time.sleep(1) publishThread = threading.Thread(target=mqttPublish,args=(param,)) publishThread.start() if __name__ == '__main__': main() config.py HOST0 = "xxx.xxx.xxx.xxx" PORT0 = 1883 CLIENTID0 = "ee071f3b-a01c-4237-8d1e-52fe0e5e32d9" USERNAME0 = "tl/lcy/xxx" PASSWD0 = "123456" TOPICSub = "/tl/lcy/test/p1" TOPICPub = "/tl/lcy/test/p2" data = '12345' 公司的服务器,在这里就不暴露更多信息了, 至于搭建一个MQTT 服务器(broker),可以通过EMQ的方式做,从哔哩哔哩看过一个从头搭建的,只不过只是入门级的,后续的插件使用,比如添加用户名密码的没有涉及,所以我觉得应该需要写一下那些部分。 突然发现B站有好多关于编程的视频,是不是发现了新大陆。物联网MQTT的也有不少 |
|