Android MQTT实现消息推送
飞哥语录:编程说白了就是发送数据,接收数据,处理数据。
1.概述
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器(比如通过Twitter让房屋联网)的通信协议。
2.特点
MQTT协议是为大量计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性:
1、使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合;
2、对负载内容屏蔽的消息传输;
3、使用 TCP/IP 提供网络连接;
4、有三种消息发布服务质量:
- “至多一次”,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传 感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。
- “至少一次”,确保消息到达,但消息重复可能会发生。
- “只有一次”,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。
5、小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量;
6、使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制;
3.MQTT服务器搭建
要想实现消息推送功能,就先必须要搭建自己的推送服务器了
这里以Apollo的1.71版本为例,大家可以从Apollo官网根据自己操作系统的版本下载对应最新的服务器软件,下载完成后并将其解压
第一步:打开cmd命令行窗口,然后cd到解压路径的bin目录下,输入apollo create mqttbroker(这个名字可以任取)然后回车,这个步骤是创建我们自己的mqtt服务器,创建完成后在我们的bin目录下会多出mqttbroker一个文件夹,里面包含所有的我们服务器的配置信息;
第二步:进入到mqttbroker的mymqttbroker\etc路径下,将我们自己的tcp链接地址配置到apollo.xml文件中;
第三步:在命令行窗口cd 到mqttbroker的mymqttbroker\bin路径下,输入apollo-broker run开启服务,想要确定我们的服务是不是开启成功,只需要在浏览器中输入http://127.0.0.1:61680/ or https://127.0.0.1:61681/,初始密码为admin/password,进入成功,则服务开启成功;
4.Android 客户端编程
首先给大家介绍几个概念:
- topic:中文意思是“话题”。在MQTT中订阅了(subscribe)同一话题(topic)的客户端会同时收到消息推送。直接实现了“群聊”功能;
- clientId:客户身份唯一标识;
- qos:服务质量;
- retained:要保留最后的断开连接信息;
- MqttAndroidClient#subscribe():订阅某个话题;
- MqttAndroidClient#publish(): 向某个话题发送消息,之后服务器会推送给所有订阅了此话题的客户;
- userName:连接到MQTT服务器的用户名;
- passWord :连接到MQTT服务器的密码;
4.1添加权限
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
4.2发布、订阅消息详情请参考代码
5.相关API
Class MqttAndroidClient
6.Jar & 源码下载
1.Github传送门
2.jar包下载
声明:
1.文中部分资料来自百度百科;
2.本文参考学习了一下博主的优秀博客,我在这里深表感谢;
http://blog.sina.com.cn/s/blog_14d17b8ab0102wi7g.html
http://blog.csdn.net/djun100/article/details/25752491
http://blog.csdn.net/flyingsnow2211/article/details/48622981
http://www.itnose.net/detail/6652162.html
Android MQTT实现消息推送相关推荐
- Android中的消息推送
转载于Android中的消息推送 前段时间做了一个应用,需要用到服务器端向Android或者是Iphone终端主动发送命令.随后客户端做出相应的反应.当时没有找到最佳的方案,一直搁置着.今天看到网上有 ...
- 浅谈iOS和Android后台实时消息推送的原理和区别
http://www.52im.net/thread-286-1-1.html 前言 iOS和Android上的实时消息推送差异很大,往小了说是技术实现的差异,往大了说是系统实现理念的不同.实时消息推 ...
- Activemq MQTT 简单消息推送示例
Activemq MQTT 简单消息推送示例 简介 简单使用 MQTT 连接 Activemq 进行消息推送的示例代码 编写详情 环境准备 使用docker启动Activemq,查看M ...
- android 消息推送方法,一种基于Android系统的消息推送方法技术方案
[技术实现步骤摘要] 本专利技术涉及一种基于Android系统的消息推送方法,属于计算机 技术介绍 推送功能在手机应用开发中越来越重要,已经成为手机开发的必选项.消息推送,就是在互联网上通过定期传送用 ...
- android开发之消息推送
本人想把Android所要运用到的所有的东西都好好的梳理一遍,那今个儿就和大伙说说消息推送:想必大家都玩过小米手机,细心的人会发现,小米手机时不时的就会发一些通知告诉你要系统升级了.某某App有新版本 ...
- android系统下消息推送机制
一.推送方式简介: 当前随着移动互联网的不断加速,消息推送的功能越来越普遍,不仅仅是应用在邮件推送上了,更多的体现在手机的APP上.当我们开发需要和服务器交互的应用程序时,基本上都需要获取服务器端的数 ...
- Flutter在Android平台实现消息推送
1. 极光推送平台申请应用 1. 注册极光推送平台: 极光官方平台 2. 极光推送平台创建应用: 填写应用程序名称. 选择平台,选择服务,点击下一步. 需要输入应用包名(Android平台),选择渠道 ...
- Android接入极光消息推送
极光消息推送: 极光推送(JPush)是一个端到端的推送服务,使得服务器端消息能够及时地推送到终端用户手机上,让开发者积极地保持与用户的连接 主要功能 保持与服务器的长连接,以便消息能够即时推送到达客 ...
- Android友盟消息推送
1. 申请应用消息推送账号 集成SDK之前, 请在 http://message.umeng.com 创建应用,获取应用对应的AppKey和Umeng Message Secret.并将自己服务器ip ...
最新文章
- 网站推广专员浅析如何做好网站推广与运营?
- python有哪些作用-python描述符有什么作用
- XMind2020的一些使用小技巧
- HTML5与HTML4的区别
- 汇编语言的相对跳转和绝对跳转以及反汇编代码解析
- maven项目中整合grunt构建工具(二)-js合并、压缩技术
- 剑指Offer的学习笔记(C#篇)-- 用两个栈实现队列
- 车牌识别及验证码识别的一般思路
- HashTable、HashSet和Dictionary的区别
- mysql数据库关联查询慢_mysql数据库多表关联查询的慢SQL优化
- 英雄联盟游戏语音无法连接服务器,英雄联盟语音连不上是电脑哪里出问题了
- oracle彻底删除dbf文件,ORACLE 删除数据文件模拟灾难恢复
- OneHotEncoder简单用法
- 【软件】Excel文件双击打开巨慢,先开excel程序,将表格拖进来就很快,夜神模拟器导致开excel很慢
- Windows下C++调用系统软键盘及其需要注意的点
- CPU天梯图2022
- Android Beacon 开发(IBeacon)
- mit 6.824 lab1A解析
- 动态规划之01背包问题详解
- 怎么打开avi文件文件损坏_什么是AVI文件(以及如何打开一个文件)?
热门文章
- AI绘图、模型切换、角色场景切换,龙坤AI助手全方位提升你的写作体验!
- 【音频驱动】Linux之ALSA声卡、WAV文件相关概念
- 荣耀手环5篮球版的使用方法
- Gause算法c语言实现,Gause是什么意思
- KTV「消亡史」:辉煌、挫折与新生
- 水果乐园java 闯关游戏免费下载_水果乐园游戏下载-水果乐园游戏安卓版 v1.0_手机乐园...
- 80老翁谈人生(6):一生追梦的历程
- 怎么写app推广软文,有什么好的APP营销策划方案吗?
- Android版本铎A梦幻连连看游戏源代码完整版
- 读书笔记002:托尼.巴赞之快速阅读