码迷,mamicode.com
首页 > 编程语言 > 详细

Python MQTT 实验

时间:2018-07-21 21:34:29      阅读:433      评论:0      收藏:0      [点我收藏+]

标签:read   nec   txt   while   exit   publish   pre   __name__   window   

Two client:

  • Pub_1.py
    import paho.mqtt.client as mqtt
    import time
    import sys
    import random
    
    
    def on_connect(client, userdata, flags, rc):
        print("connected with result code "+str(rc))
    
    
    def on_publish(client, userdata, mid):
        print("Publish au/csie/5/9/5912/temperture", )
    
    
    client = mqtt.Client()
    client.on_connect = on_connect
    client.on_publish = on_publish
    
    
    client.connect("iot.eclipse.org", 1883, 60)
    
    
    while True:
        try:
            with open("C:\\Users\\86390\\Desktop\\test_s.txt", "r") as f:
                data = f.readlines()
            # data = random.randint(24, 28)
            # client.publish("au/csie/5/9/5912/tempeture", str(data)+"C")
            print(len(str(data)))
            time.sleep(2)
        except KeyboardInterrupt:
            print("EXIT")
            client.disconnect()
            sys.exit(0)
  • Sub_1.py
    import paho.mqtt.client as mqtt
    import time
    import sys
    import random
    
    
    def on_connect(client, userdata, flags, rc):
        print("Connected with result code"+str(rc))
        client.subscribe("/inode/mychannel")
    
    
    def on_message(client, userdata, msg):
        print(len(str(msg.payload))/1024/1024)
    
    
    client = mqtt.Client()
    client.on_connect = on_connect
    client.on_message = on_message
    
    client.connect("127.0.0.1", 1883, 60)
    client.loop_forever()

 

 

Publisher and Client:

  • Pub_2.py
    import paho.mqtt.publish as publish
    import time
    
    def transmitMQTT(strMsg):
        strMqttBroker = "localhost"
        # strBroker = "127.0.0.1"
        strMqttChannel = "/inode/mychannel"
        print(len(str(strMsg)))
        publish.single(strMqttChannel, strMsg, hostname=strMqttBroker)
    
    if __name__ == __main__:
        while True:
            transmitMQTT("a"*1024*1024*40)
            time.sleep(0.1)
    
            print (time.time())

     

  • Sub_2.py
    import paho.mqtt.client as mqtt
    import time
    import sys
    import random
    
    
    def on_connect(client, userdata, flags, rc):
        print("Connected with result code"+str(rc))
        client.subscribe("/inode/mychannel")
    
    
    def on_message(client, userdata, msg):
        print(len(str(msg.payload))/1024/1024)
    
    
    client = mqtt.Client()
    client.on_connect = on_connect
    client.on_message = on_message
    
    client.connect("127.0.0.1", 1883, 60)
    client.loop_forever()

     

坑:

  • 在Windows上正常通信的两个Client, 在虚拟机上sub端接收不到,可能是DNS网管问题。
  • 两个Client通信,必须搭建中间的broker, 但是如果是一个pub, 一个sub,则直接通过本地主机作为broker即可。

Python MQTT 实验

标签:read   nec   txt   while   exit   publish   pre   __name__   window   

原文地址:https://www.cnblogs.com/ryu-manager/p/9347867.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!