- 最新动态
- 产品介绍
- 价格说明
- 快速入门
- 开发指南
- 用户指南
- 最佳实践
- API参考
-
SDK参考
- SDK介绍(联通用户专用)
- 应用侧JAVA SDK API参考(联通用户专用)
- 应用侧Python SDK API参考(联通用户专用)
- 设备侧Agent Lite API参考(C)(联通用户专用)
- 设备侧Agent Lite API参考(Android)(联通用户专用)
- 设备侧Agent Lite API参考(Java)(联通用户专用)
-
常见问题
- 热门问题(联通用户专用)
-
方案咨询(联通用户专用)
- 开发中心、设备接入和设备管理的差异是什么?
- IAM子用户或子项目是否可以开通物联网平台服务?
- 物联网平台支持在华为云的哪些区域开通?
- 如何成为华为IoT生态合作伙伴?
- 物联网平台支持哪些接入方式和协议?
- 华为是否提供模组/硬件终端/应用软件等?
- 设备接入模拟器HubSimulator是否能在设备管理使用?
- 设备接入服务如何获取设备数据?
- 物联网平台的应用和设备可以无限创建吗?
- 物联网平台支持批量注册设备吗?
- 物联网平台对应用和设备有消息流控吗?
- 开发中心单个应用允许接入设备数是多少?
- 数据在物联网平台的保存时间是多久?
- 物联网平台支持的DTLS加密算法有哪些?
- 物联网平台支持二进制大小端模式切换吗?
- 什么是NB-IoT?
- 物联网平台支持的硬件架构和使用的相关组件有哪些?
-
设备集成(联通用户专用)
- 如何获取设备和应用对接地址?
- 如何下载LiteOS IDE/IoT Studio?
- 物联网平台允许一个IMEI号注册多个设备吗?
- 如何设置设备名称?
- IoT设备如何激活?
- 物联网平台如何切换设备的在线/离线状态?
- 通过网关接入的子设备,平台如何识别是哪一个设备?
- deviceId、nodeId和IMEI有什么对应关系?
- Agent Lite和Agent Tiny有什么区别?
- 使用Agent Lite接入的网关设备gwbindinfo.json文件丢失如何处理?
- 运行Agent Lite Java Demo报UnsatisfiedLinkError错误怎么处理?
- 设备如何发送文件至物联网平台?
- 开发中心模拟设备如何上报负数?
- 开发中心支持哪几种省电模式?
- 开发中心支持数据转发吗?
- 开发中心没有设备分组和批量添加设备,怎么办?
- 如何检测NB网络信号?
- NB模组附着网络失败如何处理?
- NB模组绑定设备失败怎么办?
- NB模组无法正常上报数据怎么办?
- NB设备上报数据为字符串时如何转换为二进制编码?
- NB设备接入时,出现513错误?
- 为什么执行AT+CUFN=1会返回error?
- 平台向NB-IoT设备缓存下发命令,为什么设备一直收到同一条控制命令?
- AT+CGDCONT=1, CTNB是什么?
- NB-IoT设备如何选择PSM、DRX、eDRX模式?
- 应用集成(联通用户专用)
-
订阅推送(联通用户专用)
- 调用订阅接口时,回调地址如何获取?
- 应用服务器如何收到命令状态变化的通知?
- 如何获取证书?
- 回调地址可以使用域名吗?
- 订阅后消息推送失败,例如提示503如何处理?
- 应用服务器收到数据,但是平台显示推送失败?
- 应用服务器只有内网地址,能否订阅成功?
- 调用订阅接口时,提示回调地址不合法?
- 物联网平台只支持HTTPS的回调地址吗?
- 回调地址可以修改吗?
- 推送证书失效怎么处理?
- 调用删除单个订阅接口时,subscriptionId如何获取?
- 设备数据变化通知和批量设备数据变化通知的区别是什么?
- 应用服务器如何获取物联网平台推送消息时使用的地址?
- 物联网平台订阅推送是否具有重推机制?
- 为什么设备上报一条数据后应用服务器会收到多条推送?
- 在同一个应用下,平台可以将不同设备上报的数据,推送到两个服务器吗?
- NB-IoT设备已订阅消息确认和命令响应通知,为何应用服务器收不到推送消息?
- 数据上报(联通用户专用)
- 命令下发(联通用户专用)
- 产品模型/Profile(联通用户专用)
- 编解码插件(联通用户专用)
- 软/固件升级(联通用户专用)
- 文档下载
- 通用参考
链接复制成功!
订阅推送(联通用户专用)
非联通用户请查看设备接入服务。
概述
订阅:是指应用服务器通过调用物联网平台的“订阅平台业务数据”和“订阅平台管理数据”接口,向平台获取发生变更的设备业务信息(如设备注册、设备数据上报、设备状态等)和管理信息(软固件升级状态和升级结果)。
推送:是指订阅成功后,物联网平台根据应用服务器订阅的数据类型,将对应的变更信息(推送的通知内容可参考推送通知)推送给指定的URL地址,也称为回调地址(什么是回调地址?)。如果应用服务器没有订阅该类型的数据通知,即使数据发生了变更也不会进行推送。物联网平台进行数据推送时,数据格式为JSON格式,推送协议可以采用HTTP或HTTPS协议,其中HTTPS协议为加密传输协议,需要进行安全认证,更加安全,推荐使用。
订阅推送的示意图如下图所示:
应用服务器使用HTTPS协议调用API接口进行订阅时,应用服务器需要校验物联网平台的真实性,需要在应用服务器需要加载CA证书,该证书由物联网平台提供,下载证书文件并解压,在“Northbound API > code”中,根据具体的编程语言进行获取。
物联网平台采用HTTPS协议向应用服务器进行消息推送时,物联网平台需要校验应用服务器的真实性,需要在物联网平台上加载CA证书,该证书由应用服务器侧提供(调测时可自行制作调测证书,商用时建议更换为商用证书,否则会带来安全风险)。
推送机制:物联网平台向应用服务器推送消息后,如果应用服务器接收消息成功,会向物联网平台返回200 OK响应码。如果应用服务器无响应(响应超时时长15秒)或者应用服务器向物联网平台返回501、502、503、504响应码,表示消息推送失败,物联网平台会将消息进行缓存(缓存10分钟),然后通过轮询的方式向各个推送失败的应用服务器进行推送重试,缓存时间超时后如果还未推送成功,物联网平台不再进行推送重试。在消息缓存时间内,物联网平台重试推送失败的次数达到10次后,会将该推送的URL地址设置为无效,并按照轮询的方式,轮询探测所有失败URL有效性检,如果恢复,则会重新设置该URL为有效。您可以登录设备管理服务控制台的“应用管理 > 应用列表 > 应用详情 > 服务设置”中的“订阅推送服务(HTTP/HTTPS)”查看推送URL的状态。
只有在创建应用时打开“存储历史数据”开关的情况下(默认为打开),才能进行推送。如果平台不存储数据,直接透传的情况是不能进行消息推送的。
如何进行数据订阅
应用服务器接入到设备管理服务后,通过调用API接口或者集成SDK进行数据订阅。
上面的操作样例是基于开发中心的环境进行的开发调测,在商用时,需要将应用服务器对接平台的信息修改为设备管理服务的接入信息,并重新进行数据订阅。
- BASE_URL:更改为“iot-api.cn-north-4.myhuaweicloud.com(北京4)”。
- APPID和SECRET:更改为在设备管理服务控制台中创建应用时分配的“应用ID”和“应用密钥”。如果使用默认的应用,请通过“应用详情 > 应用定义”中重置“应用密钥”。
加载推送证书
应用服务器订阅消息成功后,设备的数据和状态发生变更时,物联网平台会向应用服务器进行消息推送。采用HTTPS协议进行推送时,请确保已经完成了消息订阅的操作后,再加载CA证书。
- 如果应用服务器取消了订阅后再重新订阅(URL不变),需要在物联网平台上重新上传CA证书。
- 如果应用服务器新增了订阅类型(新增URL),需要在物联网平台上加载与该URL对应的CA证书。即使新增URL使用的CA证书与原来推送的URL使用相同的证书,也需要重新上传CA证书。
- 登录物联网平台控制台,点击右上角“进入设备管理服务”。
- 选择“应用管理 > 应用列表”界面,在“我的应用”页面点击创建的应用。
- 在“应用定义”页签的“消息推送”功能中,单击“证书管理”按钮,上传对应的证书文件。
- 单击“添加”按钮,按照下表填写相关信息后,单击“确定”完成证书的加载。
参数名称
参数说明
CA证书
需要提前申请和购买CA证书文件,CA证书由应用服务器侧提供。
域名/IP与端口
物联网平台推送消息到应用服务器的域名或IP地址与端口信息。填写为订阅接口(“订阅平台业务数据”和“订阅平台管理数据”)里的callbackurl中对应的域名或IP地址与端口信息。例如:api.huawei.com:9001或172.0.1.2:8080。
lb昵称
证书加载的LoadBalance对应的昵称,选择默认值:default。
是否检查CNNAME
是否对CA证书的CNNAME进行校验,确保要加载的证书与申请的证书是完全匹配的。建议打开该开关。
CNNAME
“是否检查CNNAME”开关打开时出现。CA证书中携带的证书名称,请向证书申请人员获取。
支持SNI
默认不勾选,如果接收推送消息的服务器存在多个服务器使用同一个“IP+端口”,则需要勾选支持SNI,“CNNAME”填写需要接收消息的服务器的域名地址,以便服务器根据指定的域名携带对应的设备证书。
使用设备证书
保持默认值:关闭