回复
梅科尔工作室-IoT-南向开发第四次培训笔记 原创
wx64a26893112e7
发布于 2023-8-28 23:02
浏览
0收藏
三种身份
发布者(Publisher)
服务器(Broker)
订阅者(Subscriber)
消息结构
主题(Topic):字符串
负载(Payload):字符串
搭建mqtt-broker:中心服务器
登陆一台作为服务器的Ubuntu主机(本地主机或云服务器)
下载EMQX安装包:wget https://www.emqx.com/zh/downloads/broker/5.0.11/emqx-5.0.11-ubuntu18.04-amd64.deb
安装:sudo apt install ./emqx-5.0.11-ubuntu18.04-amd64.deb
运行:sudo systemctl start emqx
非必须:sudo emqx ctl admins add [用户名][用户password]非必选
控制台:http://[broker的ip]:18083/
broker的ip查看
mqtt-接口的python实现(消息发送端/消息接收端)
终端安装python依赖库——pip install paho-mqtt
程序实现
连接到broker
1. from paho.mqtt import client as paho_mqtt_client
2._client = paho_mqtt_client.Client(client_id)//建立Client对象client_id是它的名字
3._client.connect([broker-ip], [broker-port])
4.判断是否连接成功
def on_connect(client, userdata, flags, rc):if rc==0:[连接上了] else:没连接上//回调函数
_client.on_connect = on_connect//绑定到Client
5.self._client.loop_start()
往外发送一个消息(消息发送端)(https://gitee.com/zhangson502/mqtt_learning_demo/blob/master/mqtt_publisher.py)
result = _client.publish(topic, msg, qos, retain)//topic消息名,msg消息内容,retail状态机消息,返回消息状态
从外边接收一个消息(消息接收端)(https://gitee.com/zhangson502/mqtt_learning_demo/blob/master/mqtt_subscriber.py)
1.写一个回调函数
def default_on_message(self,client, userdata, msg):
..
默认回调函数
..
print(msg.payload.decode('utf-8'))//创建函数
2.把回调函数绑定到_client.on_message
self.client.on_message=self.default_on_message//绑定
3.self.client.subscribe(topic)//关联到发送端消息名topic就是消息名
绑定关联完成后,接收到同名消息,就会激活回调函数
4.在回调函数中处理接收消息
关闭连接
client.loop_stop()
_client.disconnect()
©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
分类
标签
已于2023-8-28 23:03:48修改
赞
收藏
回复
相关推荐