• 转MQTT--Python进行发布、订阅测试


    前言

     使用python编写程序进行测试MQTT的发布和订阅功能。首先要安装:pip install paho-mqtt

    测试发布(pub)

     我的MQTT部署在阿里云的服务器上面,所以我在本机上编写了python程序进行测试。

    然后在shell里面重新打开一个终端,订阅一个主题为“chat” mosquitto_sub -t chat

     在本机上测试远程的MQTT的发布功能就是把自己作为一个发送信息的人,当自己发送信息的时候,所有订阅过该主题(topic)的对象都将收到自己发送的信息。 
    mqtt_client.py

    # encoding: utf-8
    
    import paho.mqtt.client as mqtt
    
    HOST = "101.200.46.138"
    PORT = 1883
    
    def test():
        client = mqtt.Client()
        client.connect(HOST, PORT, 60)
        client.publish("chat","hello liefyuan",2) # 发布一个主题为'chat',内容为‘hello liefyuan’的信息
        client.loop_forever()
    
    if __name__ == '__main__':
        test()
    

      

    注解函数:

    client.connect(self, host, port, keepalive, bind_address)

    client.publish(self, topic, payload, qos, retain) ---保留(retain)

    client.subscribe(self, topic, qos)

    注: MQTT传输的消息分为:主题(Topic)和负载(payload)两部分:

    (1)Topic,可以理解为消息的类型,订阅者订阅(Subscribe)后,就会收到该主题的消息内容(payload);

    (2)payload,可以理解为消息的内容,是指订阅者具体要使用的内容。

    (3)当应用数据通过MQTT网络发送时,MQTT会把与之相关的服务质量(QoS)和主题名(Topic)相关连。

    测试订阅(sub)

     在本机上编写程序测试订阅功能,就是让自己的程序作为一个接收者,同一个主题没有发布(pub)信息的时候,就自己一直等候。

    # encoding: utf-8
    
    
    import paho.mqtt.client as mqtt
    
    
    def on_connect(client, userdata, flags, rc):
        print("Connected with result code "+str(rc))
        client.subscribe("chat")
    
    
    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("www.liefyuan.top", 1883, 60)
    client.loop_forever()
    

      

  • 相关阅读:
    软工5--结对2--四则运算生成器
    软工4——结对审查
    天数计算器
    翻转字符串
    位图排序
    软工 assignment 3 —— 求最大子数列之和
    剑指offer 面试题5.替换空格
    剑指offer 面试题4.二维数组中的查找
    剑指offer 面试题3.数组中重复的数字
    如何通过onenote发送博客到cnblog(博客园)
  • 原文地址:https://www.cnblogs.com/saryli/p/8961463.html
Copyright © 2020-2023  润新知