使用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内置函数Type()函数一个有趣的用法
Feb 18 Python
举例讲解Python中is和id的用法
Apr 03 Python
编写Python脚本来实现最简单的FTP下载的教程
May 04 Python
python中set常用操作汇总
Jun 30 Python
tensorflow1.0学习之模型的保存与恢复(Saver)
Apr 23 Python
Django 使用Ajax进行前后台交互的示例讲解
May 28 Python
使用Python编写Prometheus监控的方法
Oct 15 Python
python腾讯语音合成实现过程解析
Aug 01 Python
Python搭建代理IP池实现获取IP的方法
Oct 27 Python
Python异常继承关系和自定义异常实现代码实例
Feb 20 Python
python利用appium实现手机APP自动化的示例
Jan 26 Python
Pytorch可视化的几种实现方法
Jun 10 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
一款简单实用的php操作mysql数据库类
2014/12/08 PHP
thinkphp5 URL和路由的功能详解与实例
2017/12/26 PHP
PHP面向对象之里氏替换原则简单示例
2018/04/08 PHP
Extjs NumberField后面加单位实现思路
2013/07/30 Javascript
jquery隐藏标签和显示标签的实例
2013/11/11 Javascript
利用jquery写的左右轮播图特效
2014/02/12 Javascript
JS删除字符串中重复字符方法
2014/03/09 Javascript
详解JavaScript 中的 replace 方法
2016/01/01 Javascript
js无法获取到html标签的属性的解决方法
2016/07/26 Javascript
JS仿hao123导航页面图片轮播效果
2016/09/01 Javascript
利用JQuery直接调用asp.net后台的简单方法
2016/10/27 Javascript
扩展bootstrap的modal模态框-动态添加modal框-弹出多个modal框
2017/02/21 Javascript
详解基于Vue cli生成的Vue项目的webpack4升级
2018/06/19 Javascript
jQuery中ajax请求后台返回json数据并渲染HTML的方法
2018/08/08 jQuery
vue中的ref和$refs的使用
2018/11/22 Javascript
vue中使用微信公众号js-sdk踩坑记录
2019/03/29 Javascript
[01:06:30]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第二场 1月9日
2021/03/11 DOTA
Python编写的com组件发生R6034错误的原因与解决办法
2013/04/01 Python
自动化Nginx服务器的反向代理的配置方法
2015/06/28 Python
python比较两个列表大小的方法
2015/07/11 Python
selenium设置proxy、headers的方法(phantomjs、Chrome、Firefox)
2018/11/29 Python
Python3使用Matplotlib 绘制精美的数学函数图形
2019/04/11 Python
在 Linux/Mac 下为Python函数添加超时时间的方法
2020/02/20 Python
通过代码实例了解Python异常本质
2020/09/16 Python
DERMAdoctor官网:美国著名皮肤护理品牌
2019/07/06 全球购物
Clos19英国:高档香槟、葡萄酒和烈酒在线购物平台
2020/07/10 全球购物
求职自荐信
2013/12/14 职场文书
元旦晚会感言
2014/03/12 职场文书
毕业生自荐信如何写
2014/03/24 职场文书
父母寄语大全
2014/04/12 职场文书
和谐社区口号
2014/06/19 职场文书
行政文员实习自我鉴定范文
2014/09/14 职场文书
乡镇党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
写给医护人员的一封感谢信
2019/09/16 职场文书
我们认为中短波广播场强仪的最佳组合
2022/04/05 无线电
微前端qiankun改造日渐庞大的项目教程
2022/06/21 Javascript