More Related Content
Similar to Android消息推送之androidpn demo版到正式上线
Similar to Android消息推送之androidpn demo版到正式上线 (20)
Android消息推送之androidpn demo版到正式上线
- 1. Android 消息推送之 Androidpn_Demo 版到正式上线
前言:
最近公司需要 android 的消息推送,在网上找了很多消息推送的例子,都
是无法运行.
经过一段时间的研究,终于把例子运行起来了.现在共享出来,共同学习.
在下载的文件里面在 bin 目录下有 run.bat 文件直接双击即可运行.然后
在浏览器里面输入
http://127.0.0.1:7070 即可,如果在 eclipse 中运行了客户端即可在服务
器端看到.这个很简单,不是本文的重点.现在主要的就是把下载后的的
服务器端源码搭建起来,然后部署到 myeclipse 中运行,当然可以在
androidpn 的官网下载(http://sourceforge.net/projects/androidpn/files/),
也可以下载我已经调好的程序.现在把源码共享给大
家,http://download.csdn.net/detail/johnny901114/4410546
需要注意的是我的这个源码使用数据库是 mysql,所以读者的 pc 机上需
要安装 mysql 数据库,关于数据这里就不多说了.当然最好能够懂点
spring 和 hibernate,这样的话改的时候更加顺手.
但是可能还有不懂 hibernate 的人,为了能够让他很好的运行,这里就简
单的说一下了.
过程:
首先打开 jdbc.properties:
- 6. 其中通知里面的内容就是网页中 message 输入的内容.ok 按钮就是网
页中 uri 的内容.
最后还有一个问题当我们服务器端重启的时候,客户端就无法在连接到
服务器了,除非把 android 后台的服务
关掉,然后重启才行.在 XmmpManager 中加上如下红色代码就可:
private void addTask(Runnable runnable) {
Log.d(LOGTAG, "addTask(runnable)...");
taskTracker.increase();
- 7. synchronized (taskList) {
if (taskList.isEmpty() && !running) {
running = true;
futureTask = taskSubmitter.submit(runnable);
if (futureTask == null) {
taskTracker.decrease();
}
} else {
//解决服务器端重启后,客户端不能成功连接 androidpn 服务
器
runTask();
taskList.add(runnable);
}
}
Log.d(LOGTAG, "addTask(runnable)... done");
}
--------------------------------------------------------------------------------------------
--------------------------------------------------------------
后续: 2012-8-10
今天公司终于把 Androidpn 服务器端部署到服务器端了,终于真正的上
线了.
大体步骤如下:
- 8. 1,把服务器的程序通过 myeclipse 到处 war 包,然后访问 tomcat 首页,
把 war 包上传到 tomcat 服务器.
点击 Tomcat Manager 出现如下界面:
在默认的情况下登录不成功,需要在 tomcat-user.xml 文件中配置,在该
文件的加上如下配置:
01.<role rolename="manager-gui"/>
02.<user username="tomcat" password="tomcat" roles="manager-gui"/>
然后通过如下界面把 war 包上传到 tomcat 上:
- 9. 注意需要在服务器电脑上有相应数据库(我这个里是 mysql),并且有
Androidpn 对应的数据库(我这里的数据库名为 test).并且还要注意数据
库的用户名和密码.
2,假设服务器端已经能够访问了,需要把客户端的 androidpn.properties
文件的 xmppHost 的值改成你服务器端的主机名称,假设你的服务器端
访问地址为:http://push.android.net:8080/ ,那么把 xmppHost 的值改成
push.android.net
3,注意把你的 8080 端口和 5222 端口打开(这里是服务器那边的人搞的
自己不是很懂).
--------------------------------------------------------------------------------------------
-------------------------------------------------------------
后续二 :关于 Androidpn 的一些问题(2012.8.16)
- 10. 1,如果把客户端的随机生成的 UUID 代码,改成把设备的 id 或者
mac(device/mac)作为用户名,会出现重复插入的错误.
2,把客户端的数据清除(或者重新安装),那么 sharedPre 里的数据也会没
有,然而服务器端又有我们手机的设备 id,然后启动程序又会出现重复插
入的问题.
所以解决方案为,在服务器端保存用户的时候,检查数据时候存在该用
户.
因为在客户端来说自己有没有注册到服务器端,通过
SharedPreferences 里面是否存在 username 和 password.
--------------------------------------------------------------------------------------------
-----------------------------------------------------
后续三 :关于 Android 推送的其他方式(2013.1.4)
其他的推送方案 :
1> 如果想要方便成本又低 , 推荐使用极光推送 , 只要集成它的官方
SDK 即可 . 在国内是比较出名的 , 推送基础服务是免费的 ,不限制推
送条数,还有富媒体推送, 官网为 http://www.jpush.cn/
- 11. 2> android 官网最新提供的 , GCM ,是用来代替的 C2DM , 其官网
为 http://developer.android.com/google/gcm/index.html
3> 可以通过 Java nio 来实现自己的服务器, 听同事说它的经理自己通
过 Java NIO 写了一个推送服务器 可以接收 30w 左右的并发, 自己正
在尝试写一个 , 如果有进展 , 一定会共享给大家 . 同时可以研究
apache 的项目 mina 该项目就是封装 Java NIO 的 .
4> 当可以使用 XMPP 协议来实现 推送的. 自己也曾写过简单的一对
一即时聊天软件.
5> 也可以通过 MQTT 协议来实现推送 .
客户端下载地址 :
https://github.com/tokudu/AndroidPushNotificationsDemo
服务器下载地址 :
https://github.com/tokudu/PhpMQTTClient