苹果手机怎样切换Gcmnet
你好
) 使用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并重新装入设置工具。
0条评论