【我的物联网成长记18】想要实时获取设备数据?不如试试订阅推送
订阅
应用服务器通过调用物联网平台的订阅接口,向平台获取发生变更的设备业务信息(如设备注册、设备数据上报、设备状态等)和管理信息(软固件升级状态和升级结果)。
推送
订阅成功后,物联网平台根据应用服务器订阅的数据类型,将对应的变更信息推送给指定的URL地址,也称为回调地址。如果应用服务器没有订阅该类型的数据通知,即使数据发生了变更也不会进行推送。物联网平台进行数据推送时,数据格式为JSON格式,推送协议可以采用HTTP或HTTPS协议,其中HTTPS协议为加密传输协议,需要进行安全认证,更加安全,推荐使用。
回调地址
回调地址是指业务应用自定义的,供外部访问的restful接口地址。当物联网平台向业务应用推送消息时,实际是调用业务应用的restful接口把数据发给业务应用。回调地址由通信方式、业务应用的访问地址和restful接口的url组成,如https://server:port/url。通信方式建议使用https协议,保证业务应用与物联网平台的通信安全。使用https协议通信时,物联网平台需要加载证书。
由于业务应用所在的网络不同,业务应用的访问地址也不同。
业务应用部署在公网时,业务应用的访问地址就是业务应用的公网IP:端口(或域名:端口)。
业务应用部署在局域网时,需要在业务应用配置网络穿透,生成业务应用的公网访问地址,具体配置自行从网上获取网络穿透工具的配置步骤。
证书
当回调地址为https地址时,物联网平台会采用SSL双向认证机制,物联网平台和用户服务器都需要加载证书。证书包括包括CA证书,服务端证书和客户端证书,CA证书一般由权威机构颁发,但也可以自行制作。服务端证书和客户端证书则使用CA证书签发,因此,使用CA证书可以验证服务端证书和客户端证书的有效性。
基于以上原理,当用户的回调地址为https地址时,需要上传自己使用的CA证书到物联网平台,物联网平台推送消息时会使用这个CA证书验证用户服务器提供的服务器证书的有效性。
推送机制
物联网平台向应用服务器推送消息后,如果应用服务器接收消息成功,会向物联网平台返回200 OK响应码。如果应用服务器无响应(响应超时时长15秒)或者应用服务器向物联网平台返回501、502、503、504响应码,表示消息推送失败,物联网平台会将消息进行缓存(缓存10分钟),然后通过轮询的方式向各个推送失败的应用服务器进行推送重试,缓存时间超时后如果还未推送成功,物联网平台不再进行推送重试。在消息缓存时间内,物联网平台重试推送失败的次数达到10次后,会将该推送的URL地址设置为无效,并按照轮询的方式,轮询探测所有失败URL有效性检,如果恢复,则会重新设置该URL为有效。您可以登录设备管理服务控制台的“应用管理 > 应用列表 > 应用详情 > 服务设置”中的“订阅推送服务(HTTP/HTTPS)”查看推送URL的状态。
看完本文之后,您是否对物联网平台订阅推送的原理有所了解了呢?
- 点赞
- 收藏
- 关注作者
评论(0)