使用python发送、订阅mqtt消息

开发给的接口文档,接口请求方式为MQTT消息

接口文档
在这里插入图片描述
发送MQTT消息的两种方式:

一、使用Eclipse Paho MQTT Utility

在这里插入图片描述
选项中,填写账号密码
在这里插入图片描述
订阅成功的话,发布成功,就会接收到返回的消息。

缺点:

1,填写的内容不能保存,关闭窗口之后就没有了
2,参数中有时间戳,需要当前时间,发布时,要手动修改时间,不方便。

二、使用Python发送、订阅消息

需要用到的包为paho-mqtt
pip install paho-mqtt

# -*- coding: utf-8 -*-
# 以下代码在2019年2月28日 python3.6环境下运行通过
import paho.mqtt.client as mqtt
import json
import time

HOST = "10.8.9.21"
PORT = 1883
client_id = "1083421xxxxx"                       # 没有就不写,此处部分内容用xxx代替原内容,下同

def on_connect(client, userdata, flags, rc):
    print("Connected with result code "+str(rc))
    client.subscribe("data/receive")         # 订阅消息


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("Unexpected disconnection %s" % rc)

data = {
    "type":2,
    "timestamp": time.time(),
    "messageId":"9fcda359-89f5-4933-xxxx",
    "command":"xx/recommend",
    "data":{
        "openId":"xxxx",
        "appId":xxxx,
        "recommendType":"temRecommend"
    }
}
param = json.dumps(data)
client = mqtt.Client(client_id)
client.username_pw_set("xxxxxx", "xxxxxx")
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("data/send", payload=param, qos=0)     # 发送消息
client.loop_forever()

运行结果:
在这里插入图片描述
Connected with result code 0 , 0代表连接成功

推荐阅读:
有MQTT函数详细介绍, http://shaocheng.li/post/blog/2017-05-23
MQTT概念相关知识介绍,https://www.ibm.com/developerworks/cn/iot/iot-mqtt-why-good-for-iot/index.html

  • 11
    点赞
  • 114
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值