【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推送客户端和服务器端代码

时间: 2024-12-17 06:54:18

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

MQTT协议及推送服务(二)

MQTT简介 MQTT全称叫做Message Queuing Telemetry Transport,意为消息队列遥测传输,是IBM开发的一个即时通讯协议.由于其维护一个长连接以轻量级低消耗著称,所以常用于移动端消息推送服务开发. MQTT特性 MQTT具有如下特性: 使用发布/订阅消息模式,提供一对多消息发布: 对负载内容屏蔽的消息传输: 使用TCP/IP进行网络连接: 主流的MQTT是基于TCP进行连接的,同样也有UDP版本的MQTT,但是不太常用,叫做MQTT-SN. 具有三种消息发布服务

手机Android音视频采集与直播推送,实现单兵、移动监控类应用

恰逢2014 Google I/O大会,不难看出安卓在Google的推进以及本身的开放性作用下,已经快延生到生活的各个方面了,从安卓智能手机.平板,到可穿戴的Android Ware.眼镜.手表.再到Android汽车.智能家居.电视,甚至最近看新闻,日本出的几款机器人都是Android系统的,再把目光放回监控行业,传统监控中的移动终端设备,例如:单兵设备.手持设备.车载终端设备,包括家庭监控中用到的智能设备,都可以用Android系统替代了,不仅开发容易,而且易扩展,设备也更加智能了. 图 -

巧用apache httpcore-nio实现android推送服务

1. 背景 Android推送服务应用非常广泛,一般有轮询.SMS推送.IP推送几种实现方式.由于轮询的即时性不高.SMS推送需要不菲的费用,所以一般采取IP推送.由于google的IP推送平台C2DM国内被屏蔽,国内涌现很多优秀的推送平台如个推.极光推送.由于实现推送服务有一定技术难度,很多移动互联网应用直接租用这些平台服务,达到快速拓展业务的目标. 但是在一些企业和行业应用场合,限制手机接入互联网,不能采用互联网推送平台,就必须实现自己的推送服务.国内流行的方案是采用开源的androidpn

Android与iOS系统的消息推送机制

相信大家在使用iPhone版微信的时候都会有这样的经历,微信已经处于关闭状态了(后台进程运行一段时间就被系统杀掉),这时候我们收到了一个消息提醒,打开微信应用,微信显示“连接中…”和“收取中…”,然后再次显示一次刚才系统推送给我的消息通知.对这个现象比较好奇,于是去知乎上查一下资料,发现知乎上的热心人还真多,看了大家的回答之后,总结如下: [之所以去知乎查看技术问题,因为我并非技术人员,而知乎上很多开发人员是会用通俗易懂的方式解释好技术问题的,因为里面有不少大牛.] 先介绍一下两个重要的消息推送

Android推送服务开发

由于公司之前使用的手机客户端推送服务是极光推送,给公司造成一年几十万的服务费,因此,公司决定开发自己的一套推送服务,初步的技术选型是: 服务端:netty4 关于netty框架在我的下面的博客里面我整理了相关资料,本来还有一些关于mina的由于时间原因暂时没整理出来. 为了便于自己测试,自己动手实现了如何使用netty完成服务端消息推送以及在Android客户端如何将接受到的信息显示在通知栏,整体思路大概是这样的: 服务端使用netty框架开启基于TCP监听服务. 客户端发起TCP连接(不关闭,

Android与服务器端数据交互(基于SOAP协议整合android+webservice)

此文出自:http://www.cnblogs.com/zhangdongzi/archive/2011/04/19/2020688.html 上一节中我们通过http协议,采用HttpClient向服务器端action请求数据.当然调用服务器端方法获取数据并不止这一种.WebService也可以为我们提供所需数据, 那么什么是webService呢?,它是一种基于SAOP协议的远程调用标准,通过webservice可以将不同操作系统平台,不同语言,不同技术整合到一起. 我们在PC机器java客

Android推送服务(GCM)----GCM Architectural Overview翻译

GCMArchitectural Overview Google Cloud Messaging for Android (GCM)是一个能够帮助开发者从服务器端发送数据到运行在Android手机上的程序的服务.这个服务提供了一个简单,轻量级的机制使得服务器端可以告诉移动端的程序与服务器端建立直接的联系,来获取更新的程序或者用户的数据.C2DM服务可以处理所有的消息队列的问题并且可以把消息发送到目标机器上运行的目标程序. 简介 GCM的主要特点: 1  它允许第三方的程序服务端发送消息到他们的安

.net平台借助第三方推送服务在推送Android消息(极光推送)

.net平台借助第三方推送服务在推送Android消息(极光推送) 最近做的.net项目(Windows Service)需要向Android手机发送推送消息,真是有点困难,没有搞过就不停的搜文档,最后看到了一个开源项目PushSharp,可以在.net平台推送IOS,Android,Windows Phone等设备消息,大喜,然后先做了IOS的,成功了,但是做Android的时候遇到了问题,一直推送不成功,程序执行了,但是推送一直出不来,后来费劲的在网上搜,没有找到,最后放弃使用这种推送And

android 用signalr 实现推送服务

我做的app需要实现signalr 推送服务 有两种方法 一种人家已经给我们集成了还有视频教程 地址为 https://www.youtube.com/watch?v=f9ih_M7PC10  下载的程序在这 按照视频做,但是更新了我没成功完成 https://www.youtube.com/watch?v=f9ih_M7PC10 第二种自己集成 一共分两步 第一步我是在activity 里面实现接收服务器推送的数据 首先 google上面下载 java-client 地址 https://gi