IoT平台业务通信Topic设计最佳实践(共享场景为例)

简介: 以共享充电宝业务场景为例,讲解业务中topic和payload的规划设计

1.背景

当我们的设备和IoT物联网平台建立mqtt连接通道后,会根据业务需求传输不同的数据。本次实战以共享充电宝业务场景讲解topic和payload的设计。

在共享充电宝场景中,我们会涉及到C端用户操作:

  • 在App端扫码下单,借出充电宝,触发后台下发指令到当前机柜,弹出充电宝。
  • 充电完毕,直接归还充电宝到机柜,触发订单结算

商家后台交互操作:

  • 下行指令
    • 弹出充电宝
    • 广告的添加/删除
  • 设备数据处理
    • 用户取走充电宝的消息的处理,订单生效
    • 用户归还充电宝的消息的处理,订单结算
    • 广告播放的记录存储

2.设计方案

总体思路如下:

  • 根据业务不同划分不同topic,每个topic对应payload结构体。
  • 当数据发送到IoT平台,我们通过规则引擎把数据分流到多个mq队列或DB。
  • 不同优先级队列,DB分配不同计算资源,配置降级策略

2.1 上行数据逻辑

下图展示了设备数据上行场景的划分和后台系统不同处理方式
image.png

2.2 下行控制指令

下图展示了云端下行控制指令的来源和完整链路
image.png

3.通信Topic和Payload定义

按照以上分析,整理出在这个场景中的Topic和Payload细节参考表格,如下:

分类 topic 权限 payload 备注
NTP服务 /ext/ntp/${pk}/${dn}/request 发布 {
"deviceSendTime":"1000"
}
IoT平台提供
/ext/ntp/${pk}/${dn}/response 订阅 {
"deviceSendTime":"1000",
"serverRecvTime":"1543475763010",
"serverSendTime":"1543475763020"
}
IoT平台提供
定时上报
每5分钟
/${pk}/${dn}/user/bizheart/post 发布
QoS=0
{
"battery":69,
"devices":[0,1,0,0,0,1,0],
"net":84
}
设备上报
指令响应
/${pk}/${dn}/user/borrow 发布QoS=1 {
"device":2
}
用户上报
用户归还触发
/${pk}/${dn}/user/return 发布QoS=1 {
"device":2
}
弹出指令
用户App触发->Server->IoT->机柜
/${pk}/${dn}/user/pop 订阅QoS=1 {
"device":2
}
设备上报
是否弹出的响应
/${pk}/${dn}/user/borrow 发布QoS=1 {
"device":2
}
广告播放
播放记录
/${pk}/${dn}/user/ad/play 发布QoS=1 {
"adId":14323
}
添加广告资源 /${pk}/${dn}/user/ad/new 订阅
QoS=1
{
"adId":732124,
"uri":"https://ad.com/732124"
}
删除广告资源 /${pk}/${dn}/user/ad/delete 订阅
QoS=1
{
"adId":32546
}
设备状态变更 /as/mqtt/status/${pk}/${dn} {
    "status":"online/offline",
    "productKey":"pk13543",
   "deviceName":"dn1234",
    "lastTime":"2018-08-31 15:32:28.195",
    "clientIp":"123.123.123.123"
}
IoT平台提供

具体实现过程中,业务payload还会id用于实现消息去重逻辑。

至此,我们完成了IoT场景的需求梳理和业务协议设计。

image.png

相关文章
|
5月前
|
传感器 物联网 5G
物联网的通信技术以及Wi-Fi、一键配网技术、BLE、GPRS(2G)、LTE-Cat1 、NB-IoT简介
物联网的一个重要的特点是接入了网络,因此这些设备才能将传感器采集的数据上传到云平台,然后根据平台对数据的分析做出反应。而这种接入网络的技术,就是通信技术,是物联网的基础之一。通信的方式可以分为有线和无线两种方式,因为有线通信的成本较高,无线通信技术在物联网中应用比较广泛。
117 1
|
网络协议 物联网 开发者
NB-IoT 通信之 TCP 收发数据 | 学习笔记
快速学习 NB-IoT 通信之 TCP 收发数据
856 0
NB-IoT 通信之 TCP 收发数据 | 学习笔记
|
7月前
|
边缘计算 数据可视化 物联网
IOT 3000平台生态
IOT 3000平台生态
60 0
|
12月前
|
存储 数据采集 传感器
【年终特辑】看见科技创新力量 洞见时代创业精神—数字农业—冲程科技:IoT与农业生产最佳实践相结合,将农事运营管理标准化
【年终特辑】看见科技创新力量 洞见时代创业精神—数字农业—冲程科技:IoT与农业生产最佳实践相结合,将农事运营管理标准化
161 0
|
存储 SQL 人工智能
如何解决IoT数据的存储计算的实践案例
物联网数据往往来自于智能设备或者传感器设备,这些设备只要运行中,将持续不断产生设备数据。同时这些数据的使用价值根据场景千差万别,其中时效性对不同场景有很大影响,如何解决好存储和计算是物联网数字化场景的关键问题。
|
存储 运维 DataWorks
如何解决IoT数据入仓的客户实践
随着物联网应用场景的深入,企业开始进入挖掘设备上传的数据,用于客户端应用扩展后服务营收,同时也用于数字化运营、风控,帮助企业高效治理,和产品演进决策依据。 但是物联网数据上云后涉及到的大数据链路开发治理,以及产生的成本都是企业需要面临的挑战,本文以一个真实客户案例整理出的实践案例,介绍如何基于阿里云物联网平台数据服务产品能力搭建企业物联网大数据应用架构。
EMQ
|
传感器 算法 网络协议
MQTT 客户端自动重连最佳实践|构建可靠 IoT 设备连接
本文介绍在MQTT客户端代码实现过程中,自动重连逻辑设计的重要性与示例,帮助读者设计更为合理的重连代码,构建更加稳定可靠的物联网设备连接。
EMQ
881 0
MQTT 客户端自动重连最佳实践|构建可靠 IoT 设备连接
|
安全 物联网 数据安全/隐私保护
|
传感器 存储 运维
IoT Studio场景最佳实践
本次物联网场景最佳实践我们用六合一传感器(温度、湿度、二氧化碳、PM2.5、PM10、甲醛)实现家庭环境数据实时采集,通过家中Wi-Fi上报到阿里云IoT物联网平台,借助IoT Studio低代码工具搭建可视化大屏,实时监控家中环境指标变化。
598 0
IoT Studio场景最佳实践
|
传感器 监控 数据可视化
IoT Studio 物联网可视化应用搭建开发实践
阿里云 IoT Studio 物联网可视化应用搭建开发实践
22629 4
IoT Studio 物联网可视化应用搭建开发实践