【Android】基于XMAPP协议实现Android推送服务(亲测可用)

一、PC端直接运行服务器


1. 进入目录androidpn-server-0.5.0\bin,双击run.bat


2. 浏览器输入网址:http://127.0.0.1:7070/index.do


3. 将androidpn-client导入到Eclipse


4. 配置好目标平台,打开androidpn-client/res/raw/androidpn.properties文件,进行如下修改

apiKey=1234567890
xmppHost=10.0.2.2(模拟器使用该地址,真机模拟的话,则写入你PC机的IP地址)
xmppPort=5222

5. 在浏览器中输入推送的消息,客户端的通知栏即可收到


6. 补充说明, 服务器端的配置属性:androidpn-server-0.5.0\conf\config.properties

apiKey=1234567890
admin.console.host=127.0.0.1
admin.console.port=7070
xmpp.ssl.storeType=JKS
xmpp.ssl.keystore=conf/security/keystore
xmpp.ssl.keypass=changeit
xmpp.ssl.truststore=conf/security/truststore
xmpp.ssl.trustpass=changeit

7. 下面演示运行效果


服务器端,输入推送的消息,点击提交按钮


客户端通知栏接收到消息


点击之后的效果图


二、源代码搭建服务器


1. 将文件夹Androidpn整个拷贝到目录D:\Program Files\Apache Software Foundation\myProject\下


2. 修改文件D:\Program Files\Apache Software Foundation\Tomcat 8.0\conf\server.xml,

在<Host></Host>之间添加如下语句

<Context path="/androidpushServer" docBase="D:\Program Files\Apache Software Foundation\myProject\Androidpn\WebRoot"/>

3. 打开mysql的客户端,使用命令在客户端中,创建数据库androidpn

create database androidpn;

4. 修改文件D:\Program Files\Apache Software Foundation\myProject\Androidpn\resources\jdbc.properties如下所示

# JDBC Configuration
jdbcDriverClassName=com.mysql.jdbc.Driver
#jdbcUrl=jdbc:mysql://localhost:3306/android?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull
jdbcUrl=jdbc:mysql://localhost:3306/androidpn?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
注意:如果不行,也同步修改D:\Program Files\Apache Software Foundation\myProject\Androidpn\WebRoot\WEB-INF\classes\jdbc.properties


5. 由于运行的工程不在Tomcat 8.0的根目录下,因此,还需要修改以下几个文件

1》D:\Program Files\Apache Software Foundation\myProject\Androidpn\WebRoot\decorators\default.jsp, 
将前面的斜杠都去掉,如"/index.do",修改为"index.do"	
2》D:\Program Files\Apache Software Foundation\myProject\Androidpn\WebRoot\index.jsp中,
将"/images/androidpn.png"修改为"images/androidpn.png"
3》D:\Program Files\Apache Software Foundation\myProject\Androidpn\WebRoot\WEB-INF\pages\index.jsp中,
将"/images/androidpn.png"修改为"images/androidpn.png"



6. 启动Tomcat 8.0


7. 浏览器中输入:http://localhost:8010/androidpushServer/,成功运行(注意:8010为我自己Tomcat服务器的端口号)


三、客户端和服务器端打包下载

android推送客户端和服务器端代码


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。