本文介绍AndroidPn项目实现推送的使用过程。

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.0\bin\run.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 (192.168.1.1属于IP地址的C类地址,属于保留IP,专门用于路由器设置。)或是电脑的IP地址,就可以在手机上使用了.

3. 如果是不在同一个局域网的真机测试,我们需要将这个值设置为服务器的IP地址。

具体配置如下图所示:

我的电脑IP是:192.168.8.107

Jetty服务器运行的地址:http://127.0.0.1:7070/

服务器运行主界面:

推送信息:

测试结果如下图:

模拟器和真机测试通过。

下面是通过tomcat服务来实现消息推送。

需要注意的是我的这个源码使用数据库是mysql,所以读者的pc机上需要安装mysql数据库,关于数据这里就不多说了.当然最好能够懂点spring和hibernate,这样的话改的时候更加顺手. 
但是可能还有不懂hibernate的人,为了能够让他很好的运行,这里就简单的说一下了.

过程:

首先打开jdbc.properties: 
 # JDBC Configuration 
 jdbcDriverClassName=com.mysql.jdbc.Driver 
 jdbcUrl=jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull 
 hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect 
 jdbcUsername=root 
 jdbcPassword= 
 # DBCP Pool settings 
 jdbcInitialSize=5 
 jdbcMaxActive=10 
 jdbcMaxIdle=5 
 jdbcMaxWait=30000 
 jdbcValidationQuery=select 1------------------------------------------------------------

jdbcDriverClassName:表示数据库驱动的类名 
jdbcUrl:表示连接数据库的url,其中test是数据库的名称 
hibernate.dialect: 数据库方言 
jdbcUsername和jdbcPassword:mysql的用户名和密码 
其他的就不多说了.