阿里物联网平台(IOT)——业务服务器获取阿里iot平台接入设备的实时设备采集数据
基于HTTP/2通道的服务端订阅-设备状态和数据
一、服务端订阅
服务端订阅流程
在IoT场景,有时候我们期望业务服务器能接收到设备状态和设备采集的数据,而不是通过云产品中转,
这时我们可以开启服务端订阅,IoT平台会把设备产生的消息通过HTTP/2通道推送到业务服务器,以便根据自身业务场景消费。
注:HTTP/2是方便、快捷、低延时,小堆积的消息流转通道,不是队列。目前是只有java8客户端sdk。 如果业务数据流非常大, 需要支持海量消息堆积,建议通过规则引擎流转队列方式处理。
不论那个方式,消费端还是需要提升自身消费速率才能高效处理业务消息。
服务端订阅SDK
注:目前仅提供Java8版SDK
- java sdk依赖
<!-- Aliyun core --> <dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>3.7.1</version> </dependency><!-- iot message client --> <dependency><groupId>com.aliyun.openservices</groupId><artifactId>iot-client-message</artifactId><version>1.1.2</version> </dependency>
- 消费iot平台设备实时采集数据
import java.net.UnknownHostException; import java.util.concurrent.ExecutionException;import com.aliyun.openservices.iot.api.Profile; import com.aliyun.openservices.iot.api.message.MessageClientFactory; import com.aliyun.openservices.iot.api.message.api.MessageClient; import com.aliyun.openservices.iot.api.message.callback.MessageCallback; import com.aliyun.openservices.iot.api.message.entity.Message;public class H2Client {public static void main(String[] args) throws UnknownHostException, ExecutionException, InterruptedException {// 身份String accessKey = "阿里云accessKey";String accessSecret = "阿里云accessSecret";String regionId = "cn-shanghai";String uid = "阿里云账号 uid";String endPoint = "https://" + uid + ".iot-as-http2." + regionId + ".aliyuncs.com";// 连接配置Profile profile = Profile.getAccessKeyProfile(endPoint, regionId, accessKey, accessSecret);// 构造客户端MessageClient client = MessageClientFactory.messageClient(profile);// 数据接收client.connect(messageToken -> {Message m = messageToken.getMessage();System.out.println("\ntopic="+m.getTopic());System.out.println("payload=" + new String(m.getPayload()));System.out.println("generateTime=" + m.getGenerateTime());// 此处标记CommitSuccess已消费,IoT平台会删除当前Message,// 否则会保留到过期时间return MessageCallback.Action.CommitSuccess;});} }
注:目前服务端订阅是基于uid的,所有产品的消息都会被HTTP/2的client端消费,这时需要我们自己根据topic包含的productKey/deviceName区分
- java sdk依赖
阿里物联网平台(IOT)——业务服务器获取阿里iot平台接入设备的实时设备采集数据相关推荐
- python量化分析系列之---5行代码实现1秒内获取一次所有股票的实时分笔数据
python量化分析系列之---5行代码实现1秒内获取一次所有股票的实时分笔数据 最近工作太忙了,有一个星期没有更新文章了,本来这一期打算分享一些对龙虎榜数据的分析结果的,现在还没有把数据内的价值很好 ...
- 阿里云腾讯云服务器获取挂载点、device、云盘ID对应关系
脚本如下: #!/bin/bashfor i in $@ dodevice=`df -h | grep "$i" | awk '{print $1}'`diskId=`udevad ...
- 同一平台不同账号服务器,原神不同平台账号互通吗 不同平台数据能不能互通...
原神不同的平台之间账号数据能互通吗?想必很多小伙伴们都很好奇吧,接下来小编就给大家带来了详细的解答.感兴趣的小伙伴们可不要错过了哦. 原神不同平台账号互通吗 不同平台数据能互通吗 Q:可以用哪些账号登 ...
- 安全教育平台登录显示服务器繁忙,安全教育平台登录失败是怎么回事 解决方法...
安全教育平台登录失败是怎么回事 解决方法 2020-12-18 16:22:21 来源:网络整理 扫码可以: 1.在手机上浏览 2.分享给微信好友或朋友圈 摘要: 有很多的同学们反映说安全教育平台一 ...
- 阿里云重磅发布业务中台产品 BizWorks,中台发展进入下一个阶段
10 月 19 日,2021 云栖大会正式开幕,连续举办多年的云栖大会俨然已经成为了国内科技产业展示前沿科技成果,行业精英交流前沿科技想法的饕餮盛会.今年的大会以"前沿·探索·想象力&quo ...
- 一个服务器 定时从各个系统取数据,网页定时从服务器获取数据库
网页定时从服务器获取数据库 内容精选 换一换 华为云提供两种连接方式通过SQL Server客户端连接实例:非SSL连接和SSL连接.其中,SSL连接实现了数据加密功能,具有更高的安全性.安装SQL ...
- HPE:Superdome:X 关键业务服务器
在诸多 IT 核心基础架构体系中,关键业务系统一直是支撑国民经济体系运行的重要组成部分,如电信.金融.制造.公共服务等行业的数据中心,但过去一直被小型机.Unix 操作系统这一相对封闭的阵营占据.为避 ...
- 第三方支付平台的业务模式
第三方支付平台是指独立于传统金融机构的支付服务提供商,通过利用互联网和移动技术,为个人和商户提供便捷.安全的电子支付解决方案.以下是第三方支付平台的一般业务模式: 1. 用户注册和账户管理:第三方支付 ...
- 【2020年中总结】一篇文章汇集国内各大IoT云平台生态,阿里物联网/小米平台/腾讯平台/京东小京鱼平台,总有一个适合你;
文章目录 前言 阿里云IoT生态思维导图: 腾讯硬件生态思维导图: 一 .阿里云IoT生态 1.1 阿里云物联网平台: 1.2 阿里物联网生活平台: 两者的区别: 阿里生活平台产品优势 1.3 天猫精 ...
最新文章
- Unity完全学习教程-从初学者到C#中的RPG游戏开发
- python好学实用吗-都说python很简单 真的很好学么?
- php修改手机号业务逻辑层,PHP实现极限业务逻辑重用的基础教程
- struts实战--登录功能实现
- 智能机器人比巴和智伴哪个好_扫地机器人和吸尘器哪个好?
- 经典C语言程序100例之五六
- 个人发卡源码仿企业版
- C++面向对象编程之类的使用(从struct到class的进阶)
- Scikit-learn机器学习算法库代码实践
- 元数据、数据元、资源目录
- html 图片滑动验证码,html+jQuery实现拖动滑块图片拼图验证码插件【移动端适用】...
- JDK和CGLIB动态代理的区别
- Allegro SigXplorer 等长设置方法-比较简单
- BIOS中英文对照表
- go module使用教程:使用go mod的方法.报错go: cannot determine module path for source directory E:\tttttt (outside
- ionic platform add android环境搭建之难产【i1】【小白-2016.11.5】
- k8s(四)—service服务(暴露方式:ClusterIP、NodePort、LoadBalancer、ExternalName、ingress)
- 盛大无传奇 啥时离职成见面招呼语
- 软件测试公司折扣政策,@软件企业看,这些税收优惠政策请收下
- 抖音上用计算机表白,抖音里表白的句子合集