ActiveMQ、MQTT的方式进行Android消息推送,我的理解是否正确

ActiveMQ 这个也没有研究过,最近打算弄个聊天所以也看了下MQTT,不过也是一头雾水,看到有些人是使用 Mosquitto:An Open Source MQTT v3.1 Broker 做的(broker)代理,好像这个更简单一点儿,还有的是用:MQTT的学习研究(二)moquette-mqtt 的使用之mqtt broker的启动如果你只是需要推送功能的话,可以使用第三方的推送试试,比如极光,百度等,有好多的我的理解是:MQTT他只是定义了一种通讯协议,给我们封装好了一些socket连接,让我们方便调用,像 Mosquitto 和ActiveMQ只是基于这个协议实现的代理,而wmqtt.jar 是在移动端实现接收和发送消息的接口供我们调用!我所了解的也就这么多,不知道能不能帮到你
■网友
我们云巴(云巴 Yunba | 跨平台实时系统,适用于硬件端手机端PC端)是基于 MQTT 协议实现的实时通信系统,消息推送只是我们其中的一项产品服务。说下我们做消息推送的一点心得以及 MQTT 的一些要点吧。消息推送机制频道(Topic)在 MQTT 3.1 协议中,对 Topic Name(又叫 Subject 或 Channel)是这样描述的:The topic name is the key that identifies the information channel to which payload data is published. Subscribers use the key to identify the information channels on which they want to receive published information.简而言之,频道名称 是用来让发布者和订阅者区分不同频道的标识符。云巴的 频道名称 支持英文、数字、正斜杠(频道分级符)和下划线,长度不超过 128 个字符。通过“频道”进行一对多的消息发布ActiveMQ、MQTT的方式进行Android消息推送,我的理解是否正确

别名(Alias)客户端连到云巴服务器后,会被分配一个唯一的 UID,云巴内部用 UID 来标识 AppKey 下的不同客户端。由于 UID 是一串毫无规律的字符串,在实际应用中难以辨识,于是我们引入了 别名 的概念。用户可以为每个客户端设置一个有意义的名字——别名,我们会将客户端的 别名 与客户端的 UID 进行绑定,让用户可以通过 别名 来标识客户端,进行一对一通信。通过“别名”进行一对一通信ActiveMQ、MQTT的方式进行Android消息推送,我的理解是否正确

云巴 Android 消息推送客户端集成了云巴的 Android SDK,服务端可通过云巴的 SDK 或使用 RESTful API,向 Android 客户端发消息。(目前Android消息推送已支持一键集成第三方推送https://yunba.io/docs/android_sdk_third_part_push)后台保持长连接Android SDK 会启动一个后台的 Service,创建并保持到云巴服务器的长连接,从而保证了消息推送的实时性。
确保消息的送达 【ActiveMQ、MQTT的方式进行Android消息推送,我的理解是否正确】 云巴 SDK 支持 离线消息 的功能,可保证消息送达客户端。
云巴 iOS 消息推送客户端集成了云巴的 iOS SDK, 服务端通过云巴的 SDK 向 iOS 设备发消息。
一方面,云巴的服务器会负责向苹果的服务器发送 APNs 的消息; 另一方面,当应用在前台运行时,云巴会通过与 App 建立的长连接,直接推送内部消息。
集成 APNs云巴 SDK 集成了 APNs,开发者无需开发与 APNs 对接的模块,也不必自己负责 Device Token 的更新,一切交给云巴。
确保消息的送达众所周知,APNs 并不保证消息的送达。 而云巴 SDK 支持 离线消息 的功能,可保证消息送达客户端。
QoS
云巴兼容标准的 MQTT 3.1 协议,本文介绍一下协议中的 QoS。
QoS 定义QoS,全称为 Quality of Service,即服务质量。在 MQTT 协议中,QoS 可分为以下三个等级:
“QoS = 0”: At most once. Fire and Forget. (至多一次,发完即删,不保证送达。)“QoS = 1”: At least once. Acknowledged delivery. (保证至少送达一次。)“QoS = 2”: Exactly once. Assured delivery. (保证送达,且仅送达一次。)


推荐阅读