Android 中使用MQTT(第一篇)

Android 中使用MQTT(第一篇),第1张

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议。它是一种发布/订阅,极其简单和轻量级的消息传递协议,专为受限设备和低带宽,高延迟或不可靠的网络而设计。它的设计思想是轻巧、开放、简单、规范,易于实现。这些特点使得它对很多场景来说都是很好的选择,特别是对于受限的环境如机器与机器的通信(M2M)以及物联网环境。相对于XMPP,MQTT更加轻量级,并且占用的宽带低。

MQTT协议有以下特点:

那么问题来了?重连连接成功后重复接收到最后一条消息
MQTT推送消息订阅端重复接收问题。
(背景)订阅端断开的时候,发布端多次推送消息。
(现象)订阅端启动时,接收到最后一条推送消息有两次;即使Qos设置为2;依然是两次。
经排查是因为
MqttMessage的Retained设置为了true;
该值很多文章上只说了是 消息保留机制,若设置为true,mqtt服务器会保留每次发布的消息;较少提到 若订阅某主题的客户端重启,则会把此主题之前发布的消息重新推送到客户端。该值默认为false;去掉修改该值即可
那么问题来了?重连连接后手动那么多遗漏的消息,怎么选择只接收最新的一条消息呢?
MQTT推送消息订阅端重复接收问题。
(背景)订阅端断开的时候,发布端多次推送消息。
(现象)订阅端启动时,接收到msg1,msg2,msg3 (这三个消息都是同一个类型消息,只需要处理最新的msg3就好,不然界面会刷新三次)这个谁有什么好办法没呢?

GitHub地址: >mqtt与socket的区别有:

1、mqtt协议是为工作在低带宽、不可靠网络的远程传感器和控制设备通讯而设计的协议,而WebSocket则是为了浏览器与服务器全双工通信的一种协议。

2、mqtt是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。Socket是HTML5一种新的协议。

MQTT是一个基于客户端-服务器的消息发布、订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器、通信和物联网。其在智能家居、及一些小型化设备中已广泛使用。

通过从传感器、计量器等器件获取环境、资产或者运营状态信息,在进行适当的处理之后,通过传感器传输网关将数据传递出去;同时通过传感器接收网关接收控制指令信息,在本地传递给控制器件达到控制资产、设备及运营的目的

通过公网或者专网以无线或者有线的通信方式将信息、数据与指令在感知与控制层、平台服务层、应用服务层之间传递,主要由运营商提供的各种广域IP通信网络组成,包括ATM、xDSL、光纤等有线网络,以及GPRS、3G、4G、NB-IoT等移动通信网络

物联网平台是物联网网络架构和产业链条中的重要环节,通过它不仅实现对终端设备和资产的“管、控、营”一体化,向下连接感知层,向上面向应用服务提供商提供应用开发能力和统一接口,并为各行各业提供通用的服务能力,如数据路由、数据处理与挖掘、仿真与优化、业务流程和应用整合、通信管理、应用开发、设备维护服务等

丰富的应用是物联网的最终目标,未来基于政府、企业、消费者三类群体将衍生出多样化的物联网应用,创造巨大的社会价值。根据企业业务需要,在平台服务层之上建立相关的物联网应用,例如,城市交通情况的分析与预测,城市资产状态监控与分析,环境状态监控、分析与预警(如风力、雨量、滑坡),健康状况监测与医疗方案建议等

向下接入分散的物联网传感层,汇集传感数据
向上面向应用服务提供商提供应用开发的基础性平台和面向底层网络的统一数据接口,支持具体的基于传感数据的物联网应用

从设备底层到云端应用都由技术人员自行开发,对研发能力和开发时间都是不小的挑战
物联网应用存在共性需求如安全是否可以以云服务的方式提供这些功能?
物联网平台使物联网应用的快速实现成为可能,并从开发难度、功能性能和稳定可靠等多方面提供服务保证

DMP一般集成在整套端到端M2M设备管理解决方案中,解决方案提供商联合合作伙伴一起,提供通信网关、通信模块、传感器、设备管理云平台、设备连接软件,并开放接口给上层应用开发商,提供端到端的解决方案

大部分DMP提供商本身也是通信模组、通信设备提供商,如DiGi,Bosch等,本身拥有连接设备、通信模组、网关等产品和设备管理平台,因此能帮助企业实现设备管理的整套解决方案

一般DMP部署在整套设备管理解决方案中,整体报价收费;也有少量单独提供设备管理云端服务的厂商,每台设备每个月收取一定的运营管理费用

M2M连接数大、SIM卡使用量大、管理工作量大、应用场景复杂、要求灵活的资费套餐、低的ARPU值、对成本管理要求高

包含基础大数据分析服务和机器学习两大功能

未来物联网平台上的机器学习将向人工智能过渡,比如IBM Watson拥有IBM独特的DeepQA系统,结合了神经元系统,模拟人脑思考方式总结出来强大的问答系统,可帮助企业解决更多商业问题

AWS IoT可在连接了Internet的设备(如传感器、制动器、嵌入式微控制器或智能设备)与AWS云之间提供安全的双向通信,并使云中的应用程序能够与连接了Internet的设备进行交互。这样,用户能从多台设备收集遥测数据,然后存储和分析数据;也可以创建应用程序来通过手机或平板电脑控制这些设备

AWS IoT包括设备网关、消息代理、规则引擎、安全和身份服务、Device Shadow服务等组件

平台案例

通过使用AWS的服务,艾拉物联可以无需投资传统数据中心,便可提供企业级服务。在AWS的支持下,艾拉物联将全球的服务都可以整合到一个云平台上,以最小成本开拓了国际业务,使得各地都可以使用同样的开发及运维工具

AWS云服务安全、稳定、可扩展以及全球覆盖的特性加快了涂鸦业务的全球化部署,为保证海外涂鸦客户和合作伙伴能够享受到本地化的服务体验提供了坚强保障

使用AWS云平台给Sengled生迪带来的好处包括简化运维、节省人力成本、节省资源成本,同时可以灵活地扩展应用系统。AWS提供的丰富功能,使运维工程师不必研究学习传统的运维工具和方法,就可以建立起一套完整、可靠的交付系统和运维平台

物联网平台是阿里云针对物联网领域开发人员推出的一款设备管理平台。高性能IoT Hub实现设备与云端稳定通信,全球多节点部署有效降低通信延时,多重防护能力保障设备云端安全。此外,物联网平台还提供丰富的设备管理功能、稳定可靠的数据存储能力,以及规则引擎。使用规则引擎,您仅需在Web上配置简单规则,即可将设备数据转发至阿里云其他产品,获得数据采集、数据计算、数据存储的全栈服务,真正实现物联网应用的灵活快速搭建

平台案例

24小时ATM式自助售药机支持用户线下24h到店扫码付款,当场取货;线上平台下单,骑手限时送达。同时提供完备的商户管理后台,可以进行订单管理、货道管理与财务管理

仓库猫用于解决仓库的科学监测、信息化、网络化管理等问题。可以做到防火监测、防盗监测、防水监测、防潮监测、能够帮助企业快速搭建店铺的监测系统,报警系统,云存储系统

OneNET定位为PaaS服务,即在物联网应用和真实设备之间搭建高效、稳定、安全的应用平台

OneNET包括设备接入、设备管理、API,>

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存