使用python实现mqtt的发布和订阅


Posted in Python onMay 05, 2019

需要安装的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()

发布/订阅测试

# -*- coding: utf-8 -*-
import paho.mqtt.client as mqtt
MQTTHOST = "101.200.46.138"
MQTTPORT = 1883
mqttClient = mqtt.Client()
# 连接MQTT服务器
def on_mqtt_connect():
  mqttClient.connect(MQTTHOST, MQTTPORT, 60)
  mqttClient.loop_start()
# publish 消息
def on_publish(topic, payload, qos):
  mqttClient.publish(topic, payload, qos)
# 消息处理函数
def on_message_come(lient, userdata, msg):
  print(msg.topic + " " + ":" + str(msg.payload))
# subscribe 消息
def on_subscribe():
  mqttClient.subscribe("/server", 1)
  mqttClient.on_message = on_message_come # 消息到来处理函数
def main():
  on_mqtt_connect()
  on_publish("/test/server", "Hello Python!", 1)
  on_subscribe()
  while True:
    pass
if __name__ == '__main__':
  main()

注解函数:

client.connect(self, host, port, keepalive, bind_address)
client.publish(self, topic, payload, qos, retain)
client.subscribe(self, topic, qos)

测试订阅(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()

总结

以上所述是小编给大家介绍的使用python实现mqtt的发布和订阅,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python 切片和range()用法说明
Mar 24 Python
分享15个最受欢迎的Python开源框架
Jul 13 Python
python+requests+unittest API接口测试实例(详解)
Jun 10 Python
基于使用paramiko执行远程linux主机命令(详解)
Oct 16 Python
python连接数据库的方法
Oct 19 Python
快速了解python leveldb
Jan 18 Python
人脸识别经典算法一 特征脸方法(Eigenface)
Mar 13 Python
Python基础学习之函数方法实例详解
Jun 18 Python
PyTorch中常用的激活函数的方法示例
Aug 20 Python
Django框架HttpRequest对象用法实例分析
Nov 01 Python
Python实现UDP程序通信过程图解
May 15 Python
python如何删除列为空的行
Jul 17 Python
Python向excel中写入数据的方法
May 05 #Python
python使用pandas处理大数据节省内存技巧(推荐)
May 05 #Python
python使用MQTT给硬件传输图片的实现方法
May 05 #Python
Python实现的插入排序,冒泡排序,快速排序,选择排序算法示例
May 04 #Python
Python实现数据结构线性链表(单链表)算法示例
May 04 #Python
Python实现html转换为pdf报告(生成pdf报告)功能示例
May 04 #Python
Python实现将HTML转成PDF的方法分析
May 04 #Python
You might like
深入了解php4(1)--回到未来
2006/10/09 PHP
探讨PHP函数ip2long转换IP时数值太大产生负数的解决方法
2013/06/06 PHP
用php简单实现加减乘除计算器
2014/01/06 PHP
php快速查找数据库中恶意代码的方法
2015/04/01 PHP
php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总
2015/04/03 PHP
innerhtml用法 innertext用法 以及innerHTML与innertext的区别
2009/10/26 Javascript
javascript cookie操作类的实现代码小结附使用方法
2010/06/02 Javascript
Javascript前端UI框架Kit使用指南之Kitjs简介
2014/11/28 Javascript
9款2014最热门jQuery实用特效推荐
2014/12/07 Javascript
javascript实现验证IP地址等相关信息代码
2015/05/10 Javascript
jQuery实现批量判断表单中文本框非空的方法(2种方法)
2015/12/09 Javascript
js实现文字垂直滚动和鼠标悬停效果
2015/12/31 Javascript
基于JQuery的购物车添加删除以及结算功能示例
2017/03/08 Javascript
简单实现js放大镜效果
2017/07/24 Javascript
Vue 拦截器对token过期处理方法
2018/01/23 Javascript
详解ES6中的三种异步解决方案
2018/06/28 Javascript
vue+Vue Router多级侧导航切换路由(页面)的实现代码
2018/12/20 Javascript
简单了解Javscript中兄弟ifream的方法调用
2019/06/17 Javascript
原生js添加一个或多个类名的方法分析
2019/07/30 Javascript
微信小程序swiper禁止用户手动滑动代码实例
2019/08/23 Javascript
JS加载解析Markdown文档过程详解
2020/05/19 Javascript
Python最小二乘法矩阵
2019/01/02 Python
树莓派动作捕捉抓拍存储图像脚本
2019/06/22 Python
Python TCP通信客户端服务端代码实例
2019/11/21 Python
英国第二大营养品供应商:Vitabiotics
2016/10/01 全球购物
运动鞋中的劳斯莱斯:索康尼(SAUCONY)
2017/08/09 全球购物
英国护发和美妆在线商店:Klip Shop
2019/03/24 全球购物
澳大利亚珠宝商:Shiels
2019/10/06 全球购物
生物化学研究助理员求职信
2013/10/09 职场文书
学校办公室主任职责
2013/12/27 职场文书
药学专业学生的自我评价分享
2014/02/06 职场文书
优秀公益广告词大全
2014/03/19 职场文书
高中生国庆节演讲稿范文2014
2014/09/21 职场文书
2014年幼儿园教师工作总结
2014/11/08 职场文书
秋菊打官司观后感
2015/06/03 职场文书
大学生受助感言
2015/08/01 职场文书