关于服务器端向Android客户端的推送,主要有三种方式:
1.客户端定时去服务端取或者保持一个长Socket,从本质讲这个不叫推送,这是去服务端拽数据。但是实现简单,主要缺点:耗电等
2.Google的C2DM,具体不细说,缺点,服务器在国外,你懂得,不是很稳定。
3.XMPP协议,它是一种基于XML的传递协议,具有很强的灵活性和可扩展性。它的特点是将复杂性从客户端转移到了服务器端。
听说GTalk、QQ、IM等都用这个协议。
接下来说说XMPP在android客户端上的应用。分两部分:服务端搭建和客户端实现。
服务端搭建:
如果想测试一下功能,直接用搭建好的服务就行,下载androidpn-server-0.5.0-bin.zip ,由于附件太大,上传不上来
下载地址: http://115.com/file/clot4cuz#
点击bin目录下得run.bat,直接搭好服务,在浏览器上输入 http://127.0.0.1:7070 就进入管理界面。如下图:
如果你想自己更改服务,下载附件
androidpn-server-0.5.0-src.zip
,自行修改。
展示一下管理的发送页面:
客户端实现:
下载工程源码
androidpn-client-0.5.0.zip
,导入工程,运行前更改一处IP地址,修改androidpn.properties文件中的xmppHost为xmppHost=10.0.2.2
原因:模拟器访问本机需要改成10.0.2.2,下图为SDK中说明。
运行界面上图:
从服务端发送消息,客户端运行的界面:
1.客户端定时去服务端取或者保持一个长Socket,从本质讲这个不叫推送,这是去服务端拽数据。但是实现简单,主要缺点:耗电等
2.Google的C2DM,具体不细说,缺点,服务器在国外,你懂得,不是很稳定。
3.XMPP协议,它是一种基于XML的传递协议,具有很强的灵活性和可扩展性。它的特点是将复杂性从客户端转移到了服务器端。
听说GTalk、QQ、IM等都用这个协议。
接下来说说XMPP在android客户端上的应用。分两部分:服务端搭建和客户端实现。
![1.jpg 1.jpg](http://122.70.156.176/attachment_remote/forum/201110/27/172241lzd3wwlqzww7w7ql.jpg)
服务端搭建:
如果想测试一下功能,直接用搭建好的服务就行,下载androidpn-server-0.5.0-bin.zip ,由于附件太大,上传不上来
下载地址: http://115.com/file/clot4cuz#
点击bin目录下得run.bat,直接搭好服务,在浏览器上输入 http://127.0.0.1:7070 就进入管理界面。如下图:
![服务端主页.png 服务端主页.png](http://122.70.156.176/attachment_remote/forum/201110/27/165635lb38tyr55g3txqyq.png)
如果你想自己更改服务,下载附件
![](http://www.devdiv.com/static/image/filetype/zip.gif)
展示一下管理的发送页面:
![服务端发送页.png 服务端发送页.png](http://122.70.156.176/attachment_remote/forum/201110/27/165635qe9zvmojvkmhazqd.png)
客户端实现:
下载工程源码
![](http://www.devdiv.com/static/image/filetype/zip.gif)
原因:模拟器访问本机需要改成10.0.2.2,下图为SDK中说明。
![改IP.jpg 改IP.jpg](http://122.70.156.176/attachment_remote/forum/201110/27/170200i7qp0c5i280kjjqj.jpg)
运行界面上图:
![客户端主页面.png 客户端主页面.png](http://122.70.156.176/attachment_remote/forum/201110/27/165637287z3tuib7969tza.png)
![客户端更改处.png 客户端更改处.png](http://122.70.156.176/attachment_remote/forum/201110/27/165637xuvv8d8vdvigvvut.png)
从服务端发送消息,客户端运行的界面:
![来消息.png 来消息.png](http://122.70.156.176/attachment_remote/forum/201110/27/171443lublplbvv9u8teza.png)
![显示消息.png 显示消息.png](http://122.70.156.176/attachment_remote/forum/201110/27/171444zoywqpttrlwzwqa3.png)
终于看到推送了。