关于服务器端向Android客户端的推送,主要有三种方式:
1.客户端定时去服务端取或者保持一个长Socket,从本质讲这个不叫推送,这是去服务端拽数据。可是实现简单,主要缺点:耗电等
2.Google的C2DM,具体不细说,缺点,服务器在国外,你懂得,不是很稳定。
3.XMPP协议,它是一种基于XML的传递协议,具备很强的灵活性和可扩展性。它的特色是将复杂性从客户端转移到了服务器端。
据说GTalk、QQ、IM等都用这个协议。android
在Android中实现信息推送,其中一个比较成熟的解决方案即是使用XMPP协议实现。而AndroidPn项目就是使用XMPP协议实现信息推送的一个开源项目。在这里给你们介绍其使用过程。
Apndroid Push Notification的特色:
快速集成:提供一种比C2DM更加快捷的使用方式,避免各类限制.
无需架设服务器:经过使用"云服务",减小额外服务器负担.
能够同时推送消息到网站页面,android 手机
耗电少,占用流量少.
具体配置过程:
首先, 咱们须要下载androidpn-client-0.5.0.zip和androidpn-server-0.5.0-bin.zip。
下载地址:http://sourceforge.net/projects/androidpn/
解压两个包,Eclipse导入client,配置好目标平台,打开raw/androidpn.properties文件,配置客户端程序。
1. 如 果是模拟器来运行客户端程序,把xmppHost配置成10.0.2.2[模拟器把10.0.2.2认为是所在主机的地址,127.0.0.1是模拟器本 身的回环地址,10.0.2.1表示网关地址,10.0.2.3表示DNS地址,10.0.2.15表示目标设备的网络地址],关于模拟器的详细信息,大 家可参阅相关资料,这里再也不详述.
xmppPort=5222 是服务器的xmpp服务监听端口
运 行androidpn-server-0.5.0inun.bat启动服务器,从浏览器访问http://127.0.0.1:7070 /index.do (androidPN Server有个轻量级的web服务器,在7070端口监听请求,接受用户输入的文本消息)
运行客户端,客户端会向服务器发起链接请求,注册成功后,服务器能识别客户端,并维护和客户端的IP长链接。
2. 若是是在同一个局域网内的其余机器的模拟器测试(或者使用同一无线路由器wifi上网的真机) ,则须要把这个值设置为服务器机器的局域网ip.
例 如 你的电脑和android手机 都经过同一个无线路由器wifi上网, 电脑的ip地址为 192.168.1.2 而 手机的ip地址为 192.168.1.3, 这个时候 须要把这个值修改成 xmppHost=192.168.1.1 或是电脑的IP地址,就能够在手机上使用了.
3. 若是是不在同一个局域网的真机测试,咱们须要将这个值设置为服务器的IP地址。
具体配置以下图所示:
git
个人电脑IP是:192.168.8.107
服务器运行主界面:
推送信息:
web
测试结果以下图:浏览器
模拟器和真机测试经过。
其余使用过程介绍:
固然了,以上是在本身的服务器上配置并实现信息推送,若是你们想省事的话,在这里给你们推荐个网址, 能够更轻松地实现推送,缺点是须要经过别人的服务器,关于这点,你懂的。
网址:http://www.push-notification.org/
只需申请个API便可使用。服务器
另:网络
测试可用代码,地址:测试
客户端:http://git.oschina.net/cstslqq/AndroidPNClient网站
服务端 :http://git.oschina.net/cstslqq/AndroidPNServer.net