梅科尔工作室-IoT-南向开发第四次培训笔记 原创

wx64a26893112e7
发布于 2023-8-28 23:02
浏览
0收藏

三种身份

发布者(Publisher)
服务器(Broker)
订阅者(Subscriber)
消息结构
    主题(Topic):字符串
    负载(Payload):字符串

梅科尔工作室-IoT-南向开发第四次培训笔记-鸿蒙开发者社区

搭建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查看
梅科尔工作室-IoT-南向开发第四次培训笔记-鸿蒙开发者社区
梅科尔工作室-IoT-南向开发第四次培训笔记-鸿蒙开发者社区
梅科尔工作室-IoT-南向开发第四次培训笔记-鸿蒙开发者社区

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修改
收藏
回复
举报
回复
    相关推荐