大多数应用都会涉及到即时聊天的功能,在开源方案中有XMPP和MQTT.其中XMPP是基于XML的,并且不支持消息质量QOS, 所以本身并没有消息重传的机制,从而会导致丢消息.而MQTT是基于二进制的,支持QOS,并且已成为物联网的协议标准, 所以我们有理由抛弃XMPP而拥抱MQTT. 应用内部,在使用MQTT等实现即时聊天功能的同时,我们还可以在应用内部实现消息推动的功能,从而减少了我们对第三方的依赖. 而应用外部,我们仍然不可避免的要使用APNS/GCM/信鸽/极光等推送服务. 内外结合, 从…
国内的Android设备,不能稳定的使用Google GCM(Google Cloud Messageing)消息推送服务. 1. 国内的Android设备,基本上从操作系统底层开始就去掉了Google 框架 2. Google服务器都在国外,最近的在香港,以及其他原因,造成国内手机和Google服务器连接不稳定 3. 某些企业客户也不希望使用公开的服务,最好是用自己的内网推送服务器了 建议呢?用IBM的MQTT 印象里,MQTT是IBM英国/印度实验室在10年前开发的嵌入式消息系统,早年支持W…
3.针对以往Android版本的各种保活技术回顾 Android P之前为了搞定客户的投诉:“为什么微信能收到消息而你们的IM却不能?”,为了解决这个“痛点”,广大的Android开发者们只能让各种黑科技轮番上场.各显神通,最典型的:比如曾今在手机QQ上的1像素保活(虽然QQ官方从没正面承认过).后台无限播放无声音的音频.应用互相拉活等,大家都耳熟能详. 下面就是即时通讯网整理过的各种典型保活需求和思路,可以回顾学习一下: <应用保活终极总结(一):Android6.0以下的双进程守护保活实践>…
最近一直做物联网方面的开发,以下内容关于使用MQTT过程中遇到问题的记录以及需要掌握的机制原理,主要讲解理论. 背景 MQTT是IBM开发的一个即时通讯协议.MQTT构建于TCP/IP协议上,面向M2M和物联网IoT的连接协议,采用轻量级发布和订阅消息传输机制.Mosquitto是一款实现了 MQTT v3.1 协议的开源消息代理软件,提供轻量级的,支持发布/订阅的的消息推送模式,使设备对设备之间的短消息通信简单易用. 基本概念 [MQTT协议特点]——相比于RESTful架构的物联网系统,MQ…
本文转自:http://my.oschina.net/u/1270482/blog/217661 http://devgirl.org/2013/07/17/tutorial-implement-push-notifications-in-your-phonegap-application/ 概括 Android设备通过GCM服务来接收推送消息,而iOS设备这从苹果的APN服务获取.虽然按照负载来说这是两种不同的服务,但是证书都在从第三方接收消息的时候是需要作为一个存储和转发类型的服务.辨别接收…
个人总结: 1.介绍了网页消息推送通知机制 全文地址:https://github.com/Troland/how-javascript-works 这是 JavaScript 工作原理的第九章. 现在让我们把注意力转移到网页推送通知:我们将会查看其构造,探索发送/接收通知背后的过程以及最后分享一下我们在 SessionStack 是如何计划利用这些功能来创建新的产品功能的. 推送通知这一功能在移动端已经非常普遍.不知为何,网页端的推送通知是千呼万唤始出来,即使大多数开发者强烈地要求实现这一功能…
1.服务端软件对比 https://github.com/mqtt/mqtt.github.io/wiki/servers 名称(点名进官网) 特性 简介 收费 支持的客户端语言 IBM MQ 完整的MQTT v3.1 IBM MQ JMS 企业级 IBM MQ(之前称作 WebSphere MQ)是一个安全的消息传递软件, 可以快速地在应用.系统和服务之间传递消息数据. 试用  c.java IBM MessageSight MQTT V3.1.1 QoS 0.1 . 2 - 竭尽全力.至少一…
互联网推送消息的方式很常见,特别是移动互联网上,手机每天都能收到好多推送消息,经过研究发现,这些推送服务的原理都是维护一个长连接(要不不可能达到实时效果),但普通的socket连接对服务器的消耗太大了,所以才会出现像MQTT这种轻量级低消耗的协议来维护长连接,那么要如何维护长连接呢: 在写之前,我们首先了解一下为什么Android维护长连接需要心跳机制,首先我们知道,维护任何一个长连接都需要心跳机制,客户端发送一个心跳给 服务器,服务器给客户端一个心跳应答,这样就形成客户端服务器的一次完整的握手…
前段时间项目用到mqtt的消息推送,整理一下代码,代码的原型是网上找的,具体哪个地址已经忘记了. 代码的实现是新建了一个MyMqttService,全部功能都在里面实现,包括连服务器,断线重连,订阅消息,处理消息,发布消息等基本操作. 首先添加依赖: dependencies {    implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.1.0'    implementation 'org.eclipse.paho…
移动时代,用户为王,而每个APP拥有的活跃用户量(Active Users),决定了其价值. 消息推送成为了不可或缺的活跃唤起工具. 目前消息推送有如下两种途径: 1.iOS传统方式: 通过Apple苹果官方提供的应用类消息通道.消息是经过用户提交,经由苹果服务器中转,再交给符合条件的用户iOS系统中,再通过客户端系统传递给应用程序消息处理接口. 该方式优点:开发者省时省力,消息推送稳定 缺点:只适用于iOS应用. 2.自建消息通道: iOS9以后,苹果允许App在系统后台有条件地运行.(相比之…