订阅推送(联通用户专用)
非联通用户请查看设备接入服务。
概述
订阅:是指应用服务器通过调用物联网平台的“订阅平台业务数据”和“订阅平台管理数据”接口,向平台获取发生变更的设备业务信息(如设备注册、设备数据上报、设备状态等)和管理信息(软固件升级状态和升级结果)。
推送:是指订阅成功后,物联网平台根据应用服务器订阅的数据类型,将对应的变更信息(推送的通知内容可参考推送通知)推送给指定的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”填写需要接收消息的服务器的域名地址,以便服务器根据指定的域名携带对应的设备证书。
使用设备证书
保持默认值:关闭