@cfygaoyang
2019-09-10T08:35:21.000000Z
字数 1592
阅读 591
mqtt
1. 环境配置
dev.env 和 pro.env 分别对应开发环境和生产环境配置
2. 配置生效环境
执行命令:python env.py pro
3. 通过 docker 生成镜像 mqtt 并启动项目服务
cd docker && ./run.sh
备注:
a.项目启动后,超管秘钥信息初始化成功, 用于最高权限调取云服务API接口的秘钥,请注意备份;
b.如果忘记秘钥,可执行 docker exec mqtt python app.py 获取
请求header:
{
"Content-Type": "application/json",
"Authorization": "Sign 1234567890"
}
备注: 1234567890 为签名,参照下方签名规则
"""
有效周期: 7200秒
生成规则: 注意字符串拼接顺序
1. 当前时间戳用 & 拼接 app_key 生成 str_1
如: str_1 = 'timestamp=1565582317&app_key=abc'
2. 将以上字符串通过 hmac mad5, 使用 app_secret 加密生成 str_2
如: h = hmac.new(app_secret.encode('utf-8'), str_1.encode('utf-8'), digestmod='MD5')
str_2 = h.hexdigest() # 假如 str_2 = xyz
3. str_1 和 str2 用 & 拼接生成 str_3
如: str_3 = 'timestamp=1565582317&app_key=abc&signature=xyz'
4. str_3 进行 base64 编码生成签名
如: signature = base64.b64encode(str_3.encode('utf-8')).decode('utf-8')
"""
python3 示例代码:
import time
import hmac
import base64
import hashlib
def make_signature(app_key, app_secret, timestamp=None):
if not timestamp:
timestamp = int(time.time())
str_1 = 'timestamp=%s&app_key=%s' % (str(timestamp), app_key)
h = hmac.new(app_secret.encode('utf-8'), str_1.encode('utf-8'), digestmod='MD5')
str_2 = h.hexdigest()
str_3 = str_1 + '&signature=' + str_2
signature = base64.b64encode(str_3.encode('utf-8')).decode('utf-8')
return signature
tcp/mqtt: 39.105.60.207:1883
ws : 39.105.60.207:8083/mqtt
username: 对应 product_key 的值
password: 对应 product_secret 的值
topic: : 订阅topic规则 [product_key]/+/update
username: 对应 device_key 的值
password: 对应 device_secret 的值
topic: :
1.订阅消息topic规则 [product_key]/[device_key]/get
2.发布消息topic规则 [product_key]/[device_key]/update
用户调用接口获取mqtt账号信息:
username: 接口回调 username 的值
password: 接口回调 password 的值
topic: : 接口回调 topic 信息