阿里云IOT设备数据接入 (从阿里云IOT云平台获取设备数据)

           从阿里云IOT云平台获取设备数据

前言:   

这篇文档主要讲述的就是当设备的数据发送到物联网套件之后,用户的服务端如何获取设备

的数据。

通过阅读阿里云IoT文档,我们了解到队列中消息结构体如下:

{

  "payload": "Base64 Encode的数据",

  "messagetype": "status",

  "messageid": 996000000000000001,

  "topic": "具体的设备Topic",

  "timestamp": 1526450324

}

  • messageid:IoT套件生成的消息ID
  • messagetype:指的是消息类型:设备状态status和设备上报消息upload
  • topic:表示该消息源自套件中的哪个topic,当messageType=status时,topic为null,当messageType=upload时,topic为具体的设备Topic
  • payload:数据为Base64 Encode的数据。当messageType=status时,数据是设备状态数据;当messageType=upload时,data即为设备发布到Topic中的原始数据。
  • timestamp:队列中消息生成时间戳,并非业务的时间戳

一,基于HTTP/2通道的服务端订阅-设备状态和数据

1.服务端订阅

1.1 服务端订阅流程

在IoT场景,有时候我们期望业务服务器能接收到设备状态和设备采集的数据,而不是通过云产品中转。这时我们可以开启服务端订阅,IoT平台会把设备产生的消息通过HTTP/2通道推送到业务服务器,以便根据自身业务场景消费。

服务端可以直接订阅产品下配置的所有类型的消息。

目前,新版物联网平台通过HTTP/2通道进行消息流转。配置HTTP/2服务端订阅后,物联网平台会将消息通过HTTP/2通道推送至服务端。通过接入HTTP/2 SDK,企业服务器可以直接从物联网平台接收消息。HTTP/2 SDK提供身份认证、Topic订阅、消息发送和消息接收能力,并支持设备接入和云端接入能力。HTTP/2 SDK适用于物联网平台与企业服务器之间的大量消息流转,也支持设备与物联网平台之间的消息收发。

 

注:HTTP/2是方便、快捷、低延时,小堆积的消息流转通道,不是队列。目前是只有java8客户端sdk。 如果业务数据流非常大, 需要支持海量消息堆积,建议通过规则引擎流转队列方式处理。

不论那个方式,消费端还是需要提升自身消费速率才能高效处理业务消息。

目前服务端订阅是基于uid的,所有产品的消息都会被HTTP/2的client端消费,这时需要我们自己根据topic包含的productKey/deviceName区分

 

http://static-aliyun-doc.oss-cn-hangzhou.aliyuncs.com/assets/img/17309/15441768178965_zh-CN.png

2.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值