[关闭]
@cfygaoyang 2019-09-10T08:35:21.000000Z 字数 1592 阅读 591

MQTT 使用说明

mqtt


部署文档

  1. 1. 环境配置
  2. dev.env pro.env 分别对应开发环境和生产环境配置
  3. 2. 配置生效环境
  4. 执行命令:python env.py pro
  5. 3. 通过 docker 生成镜像 mqtt 并启动项目服务
  6. cd docker && ./run.sh
  7. 备注:
  8. a.项目启动后,超管秘钥信息初始化成功, 用于最高权限调取云服务API接口的秘钥,请注意备份;
  9. b.如果忘记秘钥,可执行 docker exec mqtt python app.py 获取

API接口请求规则

  1. {
  2. "Content-Type": "application/json",
  3. "Authorization": "Sign 1234567890"
  4. }
  5. 备注: 1234567890 为签名,参照下方签名规则
  1. """
  2. 有效周期: 7200秒
  3. 生成规则: 注意字符串拼接顺序
  4. 1. 当前时间戳用 & 拼接 app_key 生成 str_1
  5. 如: str_1 = 'timestamp=1565582317&app_key=abc'
  6. 2. 将以上字符串通过 hmac mad5, 使用 app_secret 加密生成 str_2
  7. 如: h = hmac.new(app_secret.encode('utf-8'), str_1.encode('utf-8'), digestmod='MD5')
  8. str_2 = h.hexdigest() # 假如 str_2 = xyz
  9. 3. str_1 和 str2 用 & 拼接生成 str_3
  10. 如: str_3 = 'timestamp=1565582317&app_key=abc&signature=xyz'
  11. 4. str_3 进行 base64 编码生成签名
  12. 如: signature = base64.b64encode(str_3.encode('utf-8')).decode('utf-8')
  13. """
  14. python3 示例代码:
  15. import time
  16. import hmac
  17. import base64
  18. import hashlib
  19. def make_signature(app_key, app_secret, timestamp=None):
  20. if not timestamp:
  21. timestamp = int(time.time())
  22. str_1 = 'timestamp=%s&app_key=%s' % (str(timestamp), app_key)
  23. h = hmac.new(app_secret.encode('utf-8'), str_1.encode('utf-8'), digestmod='MD5')
  24. str_2 = h.hexdigest()
  25. str_3 = str_1 + '&signature=' + str_2
  26. signature = base64.b64encode(str_3.encode('utf-8')).decode('utf-8')
  27. return signature

MQTT 地址信息

  1. tcp/mqtt: 39.105.60.207:1883
  2. ws : 39.105.60.207:8083/mqtt

产品连接mqtt说明

  1. username: 对应 product_key 的值
  2. password: 对应 product_secret 的值
  3. topic: : 订阅topic规则 [product_key]/+/update

设备连接mqtt说明

  1. username: 对应 device_key 的值
  2. password: 对应 device_secret 的值
  3. topic: :
  4. 1.订阅消息topic规则 [product_key]/[device_key]/get
  5. 2.发布消息topic规则 [product_key]/[device_key]/update

用户连接mqtt说明

  1. 用户调用接口获取mqtt账号信息:
  2. username: 接口回调 username 的值
  3. password: 接口回调 password 的值
  4. topic: : 接口回调 topic 信息
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注