python实现mqtt连接之创建连接,实现消息收发

本文介绍了如何在Python中使用paho-mqtt库进行MQTT消息队列的客户端-服务器通信,包括连接、订阅、消息推送以及相应的回调函数。

MQTT(消息队列遥测传输),是一个基于客户端-服务器的消息发布/订阅传输协议。

一、环境

安装mqtt库:

pip install paho-mqtt

在这里插入图片描述

二、代码解析

1.使用到的库:

      import paho.mqtt.client as mqtt     #用于mqtt调用
      import json    #用于配置发送消息的格式

2.实例:

import paho.mqtt.client as mqtt
import json

HOST = "101.10.10.214"						 #域名
PORT = 1683									 #端口
client_id = "ytest001"                       #client id,根据实际内容
Q_topic="persistent://test/topic01"          #请求的topic
D_topic="persistent://test/topic02"          #订阅topic

# 连接成功回调函数
def on_connect(client, userdata, flags, rc):  
    print("Connected with result code "+str(rc))
    client.subscribe(D_topic)  #设置订阅topic            

# 消息推送回调函数
def on_message(client, userdata, msg):        
    print("主题:"+msg.topic+" 消息:"+str(msg.payload.decode('utf-8')))

# 订阅回调
def on_subscribe(client, userdata, mid, granted_qos):
    print("On Subscribed: qos = %d" % granted_qos)

# 断开连接回调函数
def on_disconnect(client, userdata, rc):
    if rc==0:
        print("connect success !")
    else :
        print("connect error: rc=%s"% rc)

#设置消息
data = {
    "msg_id": "111",
    "type": 3,
    "topic": "topic01",
    "content": {
        "id": 1
    },
    "from": 1,
    "to": -1
}
param = json.dumps(data)

#创建
client = mqtt.Client(client_id)
client.username_pw_set("username", "password")
client.on_connect = on_connect
client.on_message = on_message
client.on_subscribe = on_subscribe
client.on_disconnect = on_disconnect
client.connect(HOST, PORT, 60)
client.publish(Q_topic, payload=param, qos=0)     # 发送消息
client.loop_forever()     #阻塞模式保持连接

3.结果:

如果连接成功,结果会显示:

Connected with result code 0
On Subscribed: qos = 0

消息发送成功有回调,则会显示回调消息,包含主题和消息内容:

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值