苹果手机怎样切换Gcmnet,第1张

你好

) 使用GCM服务(Google Cloud Messaging) 2) 使用XMPP协议(Openfire + Spark + Smack) 3) 使用MQTT协议 4) 使用HTTP轮循式

四种优缺点家都网搜提供参考连接:http://blog.csdn.net/shagoo/article/details/7899466  我使用GCM服务(Google Cloud Messaging)实现Android消息推送 注:本已实现该推送功能些限制条件

Google Cloud Messaging推送消息流程:我稍微提我自服务器发送消息google服务器通google服务器推送具体实现细节我深究许问要通google服务器推送呢直接自服务器推送;前我考虑间太实现细节说实楼主懂所妥协.....

实现该推送功能必备条件: 1)SDK需要SDK Manager安装Google Cloud Messaging for Android Library安装步骤:启SDK Manager->Extras->勾选Google Cloud Messaging for Android Library项安装 2)用调试模拟器或真机必须支持Google APIs比说用模拟器调试新建模拟器候target项要选择Google APIs版本要高于2.2 3)gcm.jar文件等执行完第步候Android SDK目录extras\google\gcm\samples\gcm-demo-client\libs目录找文件复制项目libs目录并添加路径 4)模拟器或真机必须设置并且登入google账户比调试候现ACCOUNT_MISSING错误提示说明没登入google帐号 5)耐 6)前面五点都具备请往看.......

面我介绍我实现步骤: 1. 注册用户Project NumberAPP keyProject Number我面编程候所要用SENDER_ID 启Google Cloud Messaging for Chrome服务

a) 注册完点击左侧Overview我右边看Project Number图

 在Androidpn的底层主要采用的两大框架mina和openfire两大框架,其中mina主要为底层数据传输的Socket框架。下面简单的介绍一下Socket框架 

    Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP、UDP/IP协议栈的通信框架(也可以提供JAVA 对象的序列化服务、虚拟机管道通信服务等),Mina 同时提供了网络通信的Server 端、Client 端的封装,无论是哪端,Mina 在整个网通通信结构中都处于如下的位置: 

可见Mina 的API 将真正的网络通信与我们的应用程序隔离开来 ,你只需要关心你要发送、接收的数据以及你的业务逻辑即可。同样的,无论是哪端,Mina 的执行流程如下所示: 

(1) IoService:这个接口在一个线程上负责套接字的建立,拥有自己的Selector,监听是否有连接被建立。 

(2) IoProcessor:这个接口在另一个线程上负责检查是否有数据在通道上读写,也就是说它也拥有自己的Selector,这是与我们使用JAVA NIO 编码时的一个不同之处,通常在JAVA NIO 编码中,我们都是使用一个Selector,也就是不区分IoService与IoProcessor 两个功能接口。另外,IoProcessor 负责调用注册在IoService 上的过滤器,并在过滤器链之后调用IoHandler。 

(3) IoFilter:这个接口定义一组拦截器,这些拦截器可以包括日志输出、黑名单过滤、数据的编码(write 方向)与解码(read 方向)等功能,其中数据的encode 与decode是最为重要的、也是你在使用Mina 时最主要关注的地方。 

(4) IoHandler:这个接口负责编写业务逻辑,也就是接收、发送数据的地方。 

通过Mina的原理我们研究androidpn的运行流程不能看出,如下: 

1spring初始化并启动过程,调用NioSocketAcceptor。

2NioSocketAcceptor开始执行调用IoProcessor

3IoProcessor开始调用FilterChain。FilterChain调用相关的IoFilter的。其中ProtocolCodecFilter的过滤器调用了organdroidpnserverxmppcodecXmppCodecFactory进行编码。

4XmppIoHandler实现自IoHanlder并调用通过openfire 的XMLLightweightParser解析相关的业务逻辑。

5根据解析的信息调用xmpp并处理相关信息。

AndroidPN(Android Push Notification) 是一个基于 XMPP 协议的 Java 开源推送通知实现,它包含了完整的客户端和服务端。

AndroidPN基于 Openfire 下的一些开源项目构建。

AndroidPN服务器包含两个部分,

      一个是侦听在5222端口上的XMPP服务,负责与客户端的XMPPConnection类进行通信,作用是用户注册和身份认证,并发送推送通知消息。

      另外一部分是Web服务器,采用一个轻量级的HTTP服务器,负责接收用户的Web请求。

最上层包含四个组成部分,分别是SessionManager,Auth Manager,PresenceManager以及Notification Manager。

        SessionManager负责管理客户端与服务器之间的会话。

        Auth Manager负责客户端用户认证管理。

        Presence Manager负责管理客户端用户的登录状态。

        NotificationManager负责实现服务器向客户端推送消息功能。 

IQHandler消息处理器的类:

     IQHandler:消息处理器抽象类。

     IQAuthHandler:权限协议的消息处理类,消息的类型为:jabber:iq:auth

     IQRegisterHandler:用户注册的消息处理类,消息类型为: jabber:iq:register

     IQRosterHandler:用户消息交互类,消息类型为:jabber:iq:roster

     PresenceUpdateHandler:用户状态展现变化处理类。内部调用,不具有类型。

emessage是泛微网络股份有限公司出品的一款商业即时通讯软件。

网络拓扑图总览如下:

上图需要关注一下几点:

    1、9090端口监听者是emessage私有云服务,由ecology和emobile服务使用。如果emobile,emessage,ecology服务都在同一台服务器上,服务器 防火墙规则 可以不需要设置9090端口。 如果三者不在一台服务器上,则需要设置服务器防火墙9090端口规则,但是不需要映射到 公网环境 下。

          配置地址: ecology服务器的 ecology/WEB-INF/prop/OpenfireModuleproperties中的openfireEMobileUrl项。或参见配置图的1号配置。

    2、5222端口检测目前只有telnet ip 5222这一个命令。因为它不是http协议,所以浏览器不可访问。 5222端口只有手机才会使用,一般配置为公网ip或域名。如果客户方手机使用***或者内网wifi,才可以配置内网ip。

            配置地址: ecology服务器的 ecology/WEB-INF/prop/OpenfireModuleproperties中的openfireMobileClientUrl项。或参见配置图的2号配置。

    3、 7070端口检测一般使用浏览器来访问,在要使用emessage pc端的客户端电脑浏览器里访问 emessage的IP地址:7070 ,如果出现 Http Binding Service字样,表示检测通过。 7070端口只供pc连接消息服务器使用。 (配置方式灵活,具体可以参考7070端口配置文章)

            配置地址: ecology服务器的 ecology/WEB-INF/prop/OpenfireModuleproperties中的openfireEmessageClientUrl项, 如果没有openfireEmessageClientUrl项,则取openfireMobileClientUrl 。或参见配置图的3号配置。            

常见问题汇总:

 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 推送通知服务),相应速度不错,但推送不带状态,很多功能无法实现

服务器上安装完成openfire后还要安装mysql数据库吗

openfire设置的配置文件路径为:/openfire/conf/openfirexml。打开xml文件发现安装设置完成后setup的值为true,<setup>true</setup>。首先关闭openfire服务器,然后删除<setup>属性,然后重新启动Openfire并重新装入设置工具。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 苹果手机怎样切换Gcmnet

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情