androidpn是基于XMPP协议的用于向Android客户端推送文本信息的一套开源的工具。它帮我们做了那些维护Socket长连接等等的事情。
在真正把它使用在我们的项目中之前,我们先领略一下推送。
第一步,下载androidpn服务器端与客户端。网址:http://sourceforge.net/projects/androidpn/files/
第二步,启动服务器端与客户端,通过Web页面推送。详细的步骤已经有另外的朋友写了:http://www.devdiv.com/thread-101586-1-1.html
在做第二步的过程中,要注意先启动服务器端,再启动客户端。通过查看客户端源码,我们可以知道,客户端在启动的时候开启了一个后台Service,并注册登录到了服务器端,与服务器建立了连接。所以客户端启动后,你刷新服务器那个管理页面,在User选项卡那里就能看到一个新的User了。如果在管理页面上没有User,那你推送信息,客户端肯定是收不到的。然后再到Notification那个选项卡下面输入内容,点“submit”,客户端就能收到推送信息了。
那如何将这一套东西运用到我们自己的项目中来呢?我想最懒的方法是这样的:
1、 androidpn的服务器启动起来,我们自己的服务器上有消息要发的时候就把消息Post给它,它就会自动发给Android客户端了。
2、 客户端源代码完全照搬,除了把DemoAppActivity里的内容整合到我们自己的Acitivity。
上面的这种做法有些问题。
1、 androidpn服务器收到消息后如何知道要发给哪个用户?
2、 一旦服务器重启了,客户端似乎不会自动重连,需要用户自己中断后台Service再重启应用。
3、 androidpn服务器不保存消息。就是说它一有消息就会发出去,即使客户端根本不在线,它也不会重发。
关于第一个问题,我们可以通过修改客户端代码来解决。
在XmppManager.java类文件里,有这样一行代码:
finalString newUsername = newRandomUUID();
我们只需要把newRandomUUID() 改成用户的名称,如zhangsan,这样,我们的服务器在发消息给androidpn服务器时,就可以指定说要发给zhangsan,这样就行了。
不过我也发现了一点,这个用户名在第一次与服务器端连接时,服务器端就记下来了,后面你再改是不管用的。
但是关于后面两个问题,恐怕要修改服务器的代码才能解决了。
目前 我还只了解到这么些,修改服务器代码的事,可能需要些时日才啃得下来。同样研究这个问题的朋友,欢迎留言沟通。
分享到:
相关推荐
androidpn 推送系统
androidpn为Android应用提供消息通知推送支持, 它本质上服务器端基于 Openfire,客户端基于 asmack,这二者都最 XMPP IM 开源实现里的二个基本组件,应该说 androidpn 只是把二者更多地结合起来用于做 Push的场景。...
androidpn-client推送客户端
关于服务器端向Android客户端的推送,主要有三种方式:轮询,应用程序应当阶段性的与服务器进行连接并查询是否有新的消息到达,你必须自己实现与服务器之间的通信,例如消息排队等。而且你还要考虑轮询的频率,如果...
androidpn 消息推送客户端+服务器端
androidpn推送
androidpn推送服务器端+手机端(版本3.0),androidpn开源框架集成的一个服务器端与手机端例子
androidpn 含有服务端和客户端 ,实现android推送功能,内有txt文档说明
androidPN使用mysql连接,只需修改成对应的数据库连接(空库即可)、客户端访问端口;真实项目使用
androidpn离线推送 android离线推送包括:1.数据库 2.服务端 3.空白App项目 4.APP端源代码 5.说明 6.打包好的jar 绝对值2分
androidpn 代码中实现了服务器重启后自动重连和离线消息推送和消息回执 android手机端的消息推送实现
androidpn消息推送 其中包含客户端 服务器端包含tomcat和jetty版本
Androidpn推送框架源码分析及配置方法,压缩包里面包括服务端和客户端代码,及说明文档
androidpn 含有服务端和客户端 ,实现android推送功能,内有txt文档说明
【整理】解刨AndroidPN消息推送.pdf 【整理】解刨AndroidPN消息推送.pdf
韩国著名的开源消息推送AndroidPN客户端,采用XMPP协议。
基于XMPP搭建的一个推送服务,完整的客户端使用代码
服务器端基于tomcat,解决了断线重连等BUG,采用mysql数据库,注意修改hibernate配置文件中的用户名密码,直接导入工程可用,客户端如果ADT版本过高,就把lib改成libs,注意修改访问的服务器的ip地址!
androidpn 消息推送 服务器端源码 可以自己修改也可以直接启动运行 包含web的管理页面 最全面的android消息推送服务端程序
androidpn消息推送-tomcat版,最新修改,并且验证通过,写了一个专门的文档,公大家参考。