码迷,mamicode.com
首页 > 其他好文 > 详细

MQTT 学习记录

时间:2019-03-05 11:20:28      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:demo   订阅   src   lis   时间段   密码   result   name   details   

学习mqtt协议,从网上找demo验证一下。

参考链接

https://www.jianshu.com/p/ebbe25d1c4b2

https://blog.csdn.net/xxmonstor/article/details/80479851

https://www.jianshu.com/p/b76dbc675141

https://www.ibm.com/developerworks/cn/iot/iot-mqtt-why-good-for-iot/index.html

https://www.jianshu.com/p/3d5b487c6860

https://blog.csdn.net/weixin_41656968/article/details/80848542

代理安装

在ubuntu上验证。

代理安装在本地。

wget http://emqtt.com/static/brokers/emqttd-ubuntu16.04-v2.3.9_amd64.deb

sudo dpkg -i emqttd-ubuntu16.04_v2.0_amd64.deb
启动
sudo service emqttd start
查看状态
sudo service emqttd status

使用浏览器打开EMQ控制台,http://127.0.0.1:18083,输入默认用户名:admin,默认密码public。

查看现在的客户端为0。

技术图片

subscribe订阅

subscribe.py

# 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', qos=0)
 
 
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("127.0.0.1", 1883, 60) 
client.loop_forever()

publish发布

publish.py

import paho.mqtt.client as mqtt
 
HOST = "127.0.0.1"          # 服务器地址
PORT = 1883                 # 端口号
 
def test():
    client = mqtt.Client()
    client.connect(HOST, PORT, 60)  
    # 60表示与代理通信之间允许的最长时间段(以秒为单位)。 
    # 如果没有其他消息正在交换,则它将控制客户端向代理发送ping消息的速率
    client.publish('chat',payload='hello tao',qos=0)
    client.loop_forever()
 
if __name__ == '__main__':
    test()

验证

先运行订阅的客户端

hon@T:~/Desktop/mqtt$ python subscribe.py 
Connected with result code 0

再运行发布的客户端python publish.py

在订阅可以端下面可以发现调用了on_message的内容,输出了topic名称和内容。

hon@T:~/Desktop/mqtt$ python subscribe.py 
Connected with result code 0
chat :hello tao

查看代理的变化。
出现了两个client。

技术图片

出现了发布的topic内容。

技术图片

验证的时候一定要先运行订阅subscribe的程序,进行一直监听,然后再运行发布publish程序,才会调用on_message函数。

Liu Tao

2019-3-5

MQTT 学习记录

标签:demo   订阅   src   lis   时间段   密码   result   name   details   

原文地址:https://www.cnblogs.com/helloworldtoyou/p/10475241.html

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