android push 是代表着什么意思?

android push 是代表着什么意思?,第1张

 android push 是安卓的一种消息推送机制。开发者在开发的时候会有这样的几种实现方案

  安卓关于消息推送的相关方案介绍

  ------我们国内自己的技术实现

  前些时间公司有个项目用到了android push功能,于是在google中狂搜,

  看到好多网友的介绍,我总结了一下几种方案,但其中有一种是我用着比较好的,简单,易用还免费。

  以下是这几种方案的介绍:

  方案一:

  Google官方的:

  通过对比研究发现C2DM机制存在以下缺点:

  1、C2DM内置于Android的22系统上,无法兼容老的16到21系统;

  2、必须运行android,并且安装Market,至少有一个登录的google账号。

  3、C2DM需要依赖于Google官方提供的C2DM服务器,由于国内的网络环境,这个服务经常不可用,是消息阻塞,不能对送到终端。

  方案二:

  利用MQTT协议,broker做代理服务器,但是随着用户的增多这个方案会有问题,因为broker的连接数有上限,到了一定程度后就无法连接了,这也就导致消息很难发送出去。

  总之,连接数量有限制。

  方案三:

  基于XMPP协议,很多人都建议使用这个,谷歌官方的C2DM也是基于XMPP研发的,使用这个方案不会依赖android系统,也不依赖于谷歌服务器。

  方案四:

  最近新出的一种是APNS,这个也不需要自己架设服务器,很简单,自己不用开发服务端,但要收费的,一年100人民币。

  主要有以下特点:

  · 快速集成:提供一种比C2DM更加快捷的使用方式,避免各种限制

  · 无需架设服务器:通过使用"云服务",减少额外服务器负担

  · 可以同时推送消息到网站页面,android 手机

  · 耗电少,占用流量少

  终极方案:

  下面的一种方案是我自己发现的一种方案感觉比较好用,所以推荐给大家。(android-push终极方案)

  先介绍特点:

  1、免费

  2、易集成

  3、没有C2DM中的版本限制和必须用gmail绑定

  4、云服务,不用假设自己的服务器

  5、用户track

  6、简单高效,并且省电

1 Android 推送实现方式编辑本段

  方案1、使用C2DM服务(Google Cloud Messaging)

  简介:Google推出的云消息服务,即第二代的G2DM。

  优点:Google提供的服务、原生、简单,无需实现和部署服务端。

  缺点:Android版本限制(必须大于22版本),该服务在国内不够稳定、需要用户绑定Google帐号,受限于Google。

  方案2、使用XMPP协议(Openfire + Spark + Smack)

  简介:基于XML协议的通讯协议,前身是Jabber,目前已由IETF国际标准化组织完成了标准化工作。

  优点:协议成熟、强大、可扩展性强、目前主要应用于许多聊天系统中,且已有开源的Java版的开发实例androidpn。

  缺点:协议较复杂、冗余(基于XML)、费流量、费电,部署硬件成本高。

  方案3、使用MQTT协议

  简介:轻量级的、基于代理的“发布/订阅”模式的消息传输协议。

  优点:协议简洁、小巧、可扩展性强、省流量、省电,目前已经应用到企业领域(),且已有C++版的服务端组件rsmb。

  缺点:不够成熟、实现较复杂、服务端组件rsmb不开源,部署硬件成本较高。

  方案4、使用第三方推送服务

  简介:通过嵌入SDK使用第三方提供的推送服务,目前主流的有 个推,PUBNUB,蝴蝶等

  优点:稳定,成熟,节省开发和探索时间,相对自己开发成本低,推送管理界面及统计程序完善。

  缺点:有程序嵌入顾虑

  IOS推送实现方式

  推荐使用APNS服务,稳定,方便,美中不足是没有推送到达的回执和统计,不方便产品运营。如对此方面有需求可以使用 个推 等第三方推送服务解决

  Win-Phone

  使用MPNS(Microsoft 推送通知服务),相应速度不错,但推送不带状态,很多功能无法实现

快门登陆时出现“错误代码9和错误代码10”的解决方法

不返回错误代码

你的网络可能中了arp病毒,下载360safe软件,打开arp防护工具,再尝试登录快门。

返回错误代码9

你的连接请求到达不了服务器,尝试以下几种方法:

1、点击开始 -> 运行 -> cmd

在窗口中输入ping xmppcdreamcom,看返回的结果;

如果没有“正在 Ping xmppcdreamcom [xxxxxxxx] 具有 32 字节的数据:”的字样,请在网络-属性中更改你的首选DNS地址,重复运行ping xmppcdreamcom,如果出现了上述字样,尝试登录快门。

2、关闭运行中的防火墙,和windows自带的防火墙,尝试登录快门。

3、你是否使用了代理服务器上网?使用代理服务器有可能无法登录快门。

返回错误代码10

你的DNS错误了

进行“返回错误代码9”中第一步的测试。

上述方法都试过了,还是无法登录,请运行网络测试工具吧。

根据实地观察,单台mqtt服务如果并发达到5w以上,就经常出故障;在2w左右内网访问服务器就比较卡了。

注:配置是4核 16G内存,虚机。配置有点差。对CPU的消耗比较高,内存基本没啥消耗,所以建议把CPU整好点。

QQ微信这些都用的自己的协议,而且不会公开。

对于小一点的公司想要实现实时聊天,一开始从XMPP做起是不错的选择。因为它是一个公开的标准,又有很多开源的实现,比如你提到的Openfire, aSmack和XMPPFramework,可以花费较少的开发量,就可以搭建出一套还算好用的实时聊天方案。

起步之后,你会想要添加更多的功能,XMPP有很多扩展,很多需求都能满足。一般来说,要做的产品都是服务器、客户端都由自己掌控,不需要和其他的厂商的聊天服务器/客户端互联互通,所以之后可以慢慢在XMPP上加入自己的扩展,甚至是一些删改(因为XMPP里面不少机制是为了适应不同公司的组件)。于是渐渐的,最后使用的协议可能已经和标准的XMPP不一样了,成了自己的协议。

这样从XMPP上演进出来的协议,虽然具体实现和XMPP可能相差不少,但是基本思想和原理又与XMPP一致。相比自己从头设计出一套全新的协议,基于这样一套经过无数项目考验过的协议,显然容易得多,风险也要小得多。

定义

XMPP(可扩展消息处理现场协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线现场探测。它在促进服务器之间的准即时操作。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息,即使其操作系统和浏览器不同。 XMPP的前身是Jabber,一个开源形式组织产生的网络即时通信协议。XMPP目前被IETF国际标准组织完成了标准化工作。标准化的核心结果分为两部分; 核心的XML流传输协议 基于XML流传输的即时通讯扩展应用 XMPP的核心XML流传输协议的定义使得XMPP能够在一个比以往网络通信协议更规范的平台上。借助于XML易于解析和阅读的特性,使得XMPP的协议能够非常漂亮。 XMPP的即时通讯扩展应用部分是根据IETF在这之前对即时通讯的一个抽象定义的,与其他业已得到广泛使用的即时通讯协议,诸如AIM,QQ等有功能完整,完善等先进性。 XMPP的扩展协议Jingle使得其支持语音和视频。

[编辑本段]基本网络结构

XMPP中定义了三个角色,客户端,服务器,网关。通信能够在这三者的任意两个之间双向发生。服务器同时承担了客户端信息记录,连接管理和信息的路由功能。网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信),MSN,ICQ等。基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上传输XML。

[编辑本段]功能

传输的是与即时通讯相关的指令。在以前这些命令要么用2进制的形式发送(比如QQ),要么用纯文本指令加空格加参数加换行苻的方式发送(比如MSN)。而XMPP传输的即时通讯指令的逻辑与以往相仿,只是协议的形式变成了XML格式的纯文本。这不但使得解析容易了,人也容易阅读了,方便了开发和查错。而XMPP的核心部分就是一个在网络上分片断发送XML的流协议。这个流协议是XMPP的即时通讯指令的传递基础,也是一个非常重要的可以被进一步利用的网络基础协议。所以可以说,XMPP用TCP传的是XML流。

[编辑本段]具体应用

举个例子看看所谓的XML流是什么样子的? 客户端:<xml version='10'> <stream:stream to='examplecom' xmlns='jabber:client' xmlns:stream='http://etherxjabberorg/streams' version='10'> 服务器:<xml version='10'> <stream:stream from='examplecom' id='someid' xmlns='jabber:client' xmlns:stream='http://etherxjabberorg/streams' version='10'> 其他通信 客户端:<message from='juliet@examplecom' to='romeo@examplenet' xml:lang='en'> 客户端: <body>Art thou not Romeo, and a Montague</body> 客户端:</message> 服务器:<message from='romeo@examplenet' to='juliet@examplecom' xml:lang='en'> 服务器:<body>Neither, fair saint, if either thee dislike</body> 服务器:</message> 客户端:</stream:stream> 服务器:</stream:stream> 以文档的观点来看,客户端或服务器发送的所有XML文本连缀在一起,从<stream>到</stream>构成了一个完整的XML文档。其中的stream标签就是所谓的XML Stream。在<stream>与</stream>中间的那些<message></message>这样的XML元素就是所谓的XML Stanza(XML节)。XMPP核心协议通信的基本模式就是先建立一个stream,然后协商一堆安全之类的东西,中间通信过程就是客户端发送XML Stanza,一个接一个的。服务器根据客户端发送的信息以及程序的逻辑,发送XML Stanza给客户端。但是这个过程并不是一问一答的,任何时候都有可能从一个方发信给另外一方。通信的最后阶段是</stream>关闭流,关闭TCP/IP连接。

[编辑本段]通俗解释

其实XMPP 是一种很类似于http协议的一种数据传输协议,它的过程就如同“解包装--〉包装”的过程,用户只需要明白它接受的类型,并理解它返回的类型,就可以很好的利用xmpp来进行数据通讯。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » android push 是代表着什么意思?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情