androidpn是基于XMPP协议的用于向Android客户端推送文本信息的一套开源的工具。它帮我们做了那些维护Socket长连接等等的事情。
在真正把它使用在我们的项目中之前,我们先领略一下推送。
第一步,下载androidpn服务器端与客户端。网址:http://sourceforge.net/projects/androidpn/files/
第二步,启动服务器端与客户端,通过Web页面推送。详细的步骤如下:
---------------------------------------------------------------------
(原文:http://www.devdiv.com/thread-101586-1-1.html )
关于服务器端向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(303.73 KB, 下载次数: 11839)
运行界面上图:
从服务端发送消息,客户端运行的界面:
终于看到推送了。
---------------------------------------------------------------------
第三步,需要补充一句的就是,上面下载的server端不是tomcat版本的,而是jetty框架。需要tomcat版本的,往下看:
关于将server端转化为tomcat版本,并且实现服务端重启后,客户端自动连接 http://www.iteye.com/topic/1117043#2266007
有兴趣的朋友也可以看看这哥们其他相关博文。他从理论和实际结合上分析的非常棒。