「Android基于MQTT实现消息通知」

「Android基于MQTT实现消息通知」,第1张

在对接项目中 IoT 时,发现目前有对 MQTT 做了接入,这里记录一下,官方的资料比较详细,这里主要从实现细节出发;对具体的需求以及配套的技术方案进行整理,以供参考。

提到 IoT(Internet of Things)、IIoT(Industrial IoT ) 不得不说 MQTT ,其被广泛的应用在物联网以及工业物联网之中,是一种消息传递协议。不同于我们所认识的平时常见的一些智能设备,如手机、电脑、平板等;这些设备一般都有着很好的计算能力,所依赖的网络环境很优质。但是一般的硬件设备性能较差,网络环境不稳定,而 MQTT 则是专门针对于硬件性能,网络状态不稳定场景下而生的。有着天然的优势。

详细信息

主要需要注意 Topics 的匹配规则,分为单项通配符,与多项通配符。单项以 + 连接:this/is/+/single,其中仅仅 + 部分可以被替换为单个路径(以 / 分割)。多项通配符仅支持在尾端支持:this/is/multi/#,并且是多级的。

详细信息

保活时效,包括其他的字段,官方文档都给出了很详细的解释,认真了解一项技术实现,官方的文档还是最好的选择文档。这里主要基本认识MQTT是个什么东西,具体的实现细节与规范也不是一两句话可以说的清楚的,且可能存在误导的风险。MQTT

以实际的项目为例,现需要实现的功能有:

功能相对很简单,总结就是服务端推送消息,设备根据消息做出响应。

导入依赖

主要分为几个类:a主体请求 Client ,b数据返回的回调 dataCallback ,c链接状态回调 connectCallback ,d具体消息处理策略 IHandler 。方案主要就包括这几个大类,逐步实现各个细节。

在实现之前,列举几个关键的参数,参数配置在 MqttConnectOptions

关于自动重新连接有三个必要条件, cleanSession 需要设置为 false isAutomaticReconnect 需要设置为 true ,并且初始 已经连接过 。划重点,这里就要求, MQTT 虽然可以自动重试连接当时必须有这三个前提,那么首次由于网络等其他原因,这里的重试机制是需要我们自身去实现的,也就是需要保证首次能够连接到服务端。源码以及注释:

需要注意的是这里的 ClientId ,是唯一性的,像 IoT 设备以设备 deviceId 作为 ClientId ,如果换成用户 userId ,当在多设备登录的情况下,那么重试等其他一些机制会影响预期结果,给排查问题带来一定的难度。

消息体中会包含不同的 type ,根据不同的 type 实现不同的处理器,当然为了灵活还要借助 注解机制

通过反射的方式加载对应的 IHandler 实现类,核心代码

使用时,直接加上注解:

整个流程的主要部分已经给出,核心是通过不同的消息 type 查找出对应的 处理器 ;当然这部分主要是由注解完成的,对于处理器的查找则是通过 反射 的方式来进行匹配的。

MQTT官网

物联网主要功能是将用户端的所有需要的信息互通互联,实现全方位的远程识别、读取和 *** 控、互动。
应用层位于物联网三层结构中的最顶层,其功能为“处理”,即通过云计算平台进行信息处理。应用层与最低端的感知层一起,是物联网的显著特征和核心所在,应用层可以对感知层采集数据进行计算、处理和知识挖掘,从而实现对物理世界的实时控制、精确管理和科学决策。
从结构上划分,物联网应用层包括以下三个部分:
1. 物联网中间件:物联网中间件是一种独立的系统软件或服务程序,中间件将各种可以公用的能力进行统一封装,提供给物联网应用使用。
2. 物联网应用:物联网应用就是用户直接使用的各种应用,如智能 *** 控、安防、电力抄表、远程医疗、智能农业等等。
3. 云计算:云计算可以助力物联网海量数据的存储和分析。依据云计算的服务类型可以将云分为:基础架构即服务(IaaS)、平台即服务(PaaS)、服务和软件即服务(SaaS)
从物联网三层结构的发展来看,网络层已经非常成熟,感知层的发展也非常迅速,而应用层不管是从受到的重视程度还是实现的技术成果上,以前都落后于其他两个层面。但因为应用层可以为用户提供具体服务,是与我们最紧密相关的,因此应用层的未来发展潜力很大。

MQTT协议是Message Queuing Telemetry Transport的缩写,中文名叫作消息队列遥测传输。是一个即时通讯协议,该协议支持所有平台,可以当作传感器来使用,举个例子,你仅仅在家通过此协议制造一个“传感器”,家里有医疗设备和装置并且安上了无线发射器,这样很适合那些有旧疾而且需要定期检查的病人们,在家就可以用设备自我检查之后通过无线MQTT协议将检查结果发送给负责你的医生,医生可以随时查看你的健康状况,并给出合理的建议,这样极大地方便了用户和医生的交流,非常便利。所以在推送信息和快速即时方面MQTT协议发展前景很是可观。

而TCP协议是学过计算机的人都比较熟悉的协议,分了四层,面向连接又可靠,可以用于文件传输、远程登陆、发送邮件等,但传输速度较慢,要求也比较多。这两个协议中大多数人都会推荐MQTT协议,因为MQTT是建立在TCP基础之上的,光实时性这一点就符合许多人的要求,现在信息高速时代大家要的第一点就是快速,让生活方便,并且比TCP有过之而无不及

我也相信在未来MQTT协议会出现在我们的生活各个方面,这样灵活便捷的协议如果我们很好地利用,对我们信息技术的发展一定有着很大的帮助,这也是移动互联网发展的特色了吧。其实也不能绝对性地说MQTT比TCP好,只能说它功能更加全面,适应时代发展的要求,所以推荐选择它。

现在MQTT协议国内外也在逐渐应用,相信它会发展得越来越好的。

什么是工业物联网平台?工业物联网平台就是一种工业物联网软件,它允许组织安全地管理工业物联网生态系统中所有互联的人员、系统和物体。那,工业物联网平台具有哪些特点呢?

一、什么是工业物联网平台
定义工业物联网平台时,要认识到,物联网创建了一种新的集成水平,随着成千上万的工业物联网设备连接到网络上,企业需要管理的端点数量比以往任何时候都要多得多。但是,这不是简简单单的设备问题,工业物联网网络实际上是一个由人、系统和物体组成的数字生态系统。这就需要一个工业物联网平台来安全有效地管理这个生态系统中的每个元素。
最好的工业物联网平台可以将设备与企业应用软件完美整合,使得数据能够在互联的人、系统和物体之间无缝而安全的流动。
工业物联网平台应具备以下功能:
▲设备整合功能
这涵盖了工业物联网上传感器、执行器、标签和信标等所有设备的配置、管理和淘汰。工业物联网平台应该能够自动摄取物联网数据,并使其可用于网络上的其它元素。
▲数据整合功能
工业物联网的价值就在于数据,必须能够对其进行捕获、集成和管理。工业物联网平台将新的物联网主数据与现有的应用软件数据以及来自社交媒体等其他来源的数据关联起来,以探求其相关性。
▲流程整合功能
作为数字生态系统的一部分,工业物联网元素并非孤立于业务运作之外。工业物联网解决方案必须嵌入到企业业务流程和工作流程中。为此,工业物联网平台将物联网业务逻辑整合到其他后端系统中,并将物联网数据部署到工作流程管理中,从而实现物联网解决方案、业务流程和工作流程的整合。
▲生态系统服务
工业物联网平台负责安全地建立、启动和管理数字生态系统中人、设备、数据和设备的可信交互。
二、工业物联网平台有哪些类型
虽然工业物联网平台研发的初衷是为了管理和控制工业物联网设备与数据,但已经发展出了许多不同类型的平台以适应不同的用例。实际上,很难对工业物联网平台进行归类,反而工业物联网平台供应商正在改进其平台产品以满足客户要求和特定业务需求。
工业物联网平台将提供不同的功能组合,包括工业物联网端点管理与连接性,物联网数据的捕获、摄取与处理,数据的可视化与分析,以及将物联网数据整合到业务流程和工作流程中。
在比较不同类型的平台时,都应基于组织的业务需求和特定的IT基础架构,并将之与工业物联网的解决方案相匹配。
三、工业物联网平台具有哪些特点
因此,最佳的工业物联网平台因组织而异,并且单一的平台功能集无法为每个用例提供足够的解决方案。但无论如何,任何工业物联网平台都应具备以下特性:
▲安全
安全是工业物联网平台的核心,既要保护所有的物联网端点免受外部网络攻击,又要应对源自组织内部的潜在恶意活动。
▲连接性
必须快速安全地配置每个工业物联网设备,并管理其生命周期的所有阶段,包括在按需配置、注册、激活、挂起、未挂起、删除和重置设备时对其进行跟踪与授权。
▲集成
集成是工业物联网面临的最大挑战之一。工业物联网平台允许物联网设备无缝而安全地与不同的企业应用软件、云服务、移动APP和传统系统连接并共享信息。
▲识别
工业物联网平台能够为最广泛的物联网设备提供支持。无论在工业物联网架构中的任何地方,都能够自动感知物联网设备的存在,以建立安全连接,并可以快速地建立设备凭证,或在需要时将其自动分配。
▲分析
物联网设备极大地增加了组织内的数据量。工业物联网分析应该是工业物联网平台最强大的功能之一。它能够将工业物联网数据进行适当的可视化和分析,并从中提出切实可行的见解,用于改进数据驱动型决策。
四、工业物联网平台能改变什么
工业物联网平台是物联网项目成功实施的基础。没有有效的平台,任何大规模的工业物联网部署都不能实现其全部价值。最好的工业物联网平台能够给组织带来很多效益,包括:
▲降低成本
管理和维护迥然不同的工业物联网设备和网络,成本高昂、耗时且复杂。工业物联网平台将整个管理流程集中到一起,能够大幅度地降低企业的负担和成本。(来源物联之家网)另外,随着越来越多的组织寻求工业物联网供应商来管理其网络,最好的工业物联网平台使得供应商能够提供按需付费的定价模式。
▲改善运营
工业物联网解决方案能够提供设备性能和人员的实时信息,以帮助简化和改进业务流程和工作流程。通过捕获物联网数据并将其与其他内部、外部来源的数据进行整合,工业物联网平台可促进诸如预测性维护以及基于跟踪的供应链可见性等领域的运营改进。
▲提高生产效率
平台为部署新的工业物联网应用软件(例如DigitalTwins数据孪生)打好了基础。利用这些软件来进行新产品的设计、研发与生产,将有助于推动企业创新和提高生产效率。
▲物联网数据货币化
创新型公司已经开始利用他们从物联网数据获得的洞察力来开发新的产品和服务。在产品的整个生命周期中,售后与服务比原始采购更加有利可图。工业物联网平台能够在产品生产及使用的每个阶段捕获数据并进行分析。这样就可以创建新的数据驱动型服务以及开发全新的数据驱动型产品。
▲提高物联网安全
众所周知,物联网设备缺乏企业级的安全性。工业物联网传感器等设备除了执行特定的通知任务之外,几乎没有什么计算能力,也无法提供多层安全性。工业物联网平台能够提供所有的身份管理功能,例如安全认证与授权,以确保物联网端点不会受到网络攻击。
五、关于正达信通ZedaCloud物联网云平台
ZedaCloud物联网云平台是基于云计算原理开发的物联网应用系统,是ZedaSmart云边端物联网整体解决方案的核心,是一个综合性的物联网解决方案。ZedaCloud物联网云平台基于微服务架构设计,满足分层分布式计算架构,支持私有化和公有云两种部署方式,既可单机系统部署,也可集群部署,灵活应变,满足不同的应用需求。平台可适配于各种物联网应用系统,支持包括mqtt、modbus、NB-IoT、LoRa等在内的多种通信协议,实时监测接入设备和传感器的数据及运行状态。并且,还能与市面上绝大多数物联网硬件无缝对接,完成物联设备的数据接入、控制、存储、分析、展示等,实现对硬件设备的远程管理,做到精确感知、精准 *** 作、精细管理、智能分析,可应用于工业领域的设备管理、能源管理、安全环保,应用于结构体安全监测、地质灾害监测,应用于建筑领域的机房动环监控、楼宇综合监控等应用场景。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/13174144.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-16
下一篇 2023-06-16

发表评论

登录后才能评论

评论列表(0条)

保存