开发给的接口文档,接口请求方式为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