SlideShare a Scribd company logo
1 of 11
Download to read offline
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:
# 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 的用户名和密码
其他的就不多说了.
如果没有意外的话,服务器启动成功后,可以在浏览器里输
入:http://localhost:8080/
就可以出现如下界面:
然后,运行客户端代码,需要注意的是把 androidpn.properties 中的
xmppHost 改为你的局域网 ip 地址.运行如下图所示:
然后在浏览器中的 Users 界面可以看到手机与服务器之间的连接.如:
然后在 Notifications 界面可以发送消息给客户端:
在客户端就收到了通知:
其中通知里面的内容就是网页中 message 输入的内容.ok 按钮就是网
页中 uri 的内容.
最后还有一个问题当我们服务器端重启的时候,客户端就无法在连接到
服务器了,除非把 android 后台的服务
关掉,然后重启才行.在 XmmpManager 中加上如下红色代码就可:
private void addTask(Runnable runnable) {
Log.d(LOGTAG, "addTask(runnable)...");
taskTracker.increase();
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 服务器端部署到服务器端了,终于真正的上
线了.
大体步骤如下:
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 上:
注意需要在服务器电脑上有相应数据库(我这个里是 mysql),并且有
Androidpn 对应的数据库(我这里的数据库名为 test).并且还要注意数据
库的用户名和密码.
2,假设服务器端已经能够访问了,需要把客户端的 androidpn.properties
文件的 xmppHost 的值改成你服务器端的主机名称,假设你的服务器端
访问地址为:http://push.android.net:8080/ ,那么把 xmppHost 的值改成
push.android.net
3,注意把你的 8080 端口和 5222 端口打开(这里是服务器那边的人搞的
自己不是很懂).
--------------------------------------------------------------------------------------------
-------------------------------------------------------------
后续二 :关于 Androidpn 的一些问题(2012.8.16)
1,如果把客户端的随机生成的 UUID 代码,改成把设备的 id 或者
mac(device/mac)作为用户名,会出现重复插入的错误.
2,把客户端的数据清除(或者重新安装),那么 sharedPre 里的数据也会没
有,然而服务器端又有我们手机的设备 id,然后启动程序又会出现重复插
入的问题.
所以解决方案为,在服务器端保存用户的时候,检查数据时候存在该用
户.
因为在客户端来说自己有没有注册到服务器端,通过
SharedPreferences 里面是否存在 username 和 password.
--------------------------------------------------------------------------------------------
-----------------------------------------------------
后续三 :关于 Android 推送的其他方式(2013.1.4)
其他的推送方案 :
1> 如果想要方便成本又低 , 推荐使用极光推送 , 只要集成它的官方
SDK 即可 . 在国内是比较出名的 , 推送基础服务是免费的 ,不限制推
送条数,还有富媒体推送, 官网为 http://www.jpush.cn/
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

More Related Content

Viewers also liked

云推送技术实现与敏捷开发
云推送技术实现与敏捷开发云推送技术实现与敏捷开发
云推送技术实现与敏捷开发kaerseng
 
选择第三方推送
选择第三方推送选择第三方推送
选择第三方推送kaerseng
 
Essential product design research
Essential product design researchEssential product design research
Essential product design researchPhil Johnson
 
Redis 存储分片之代理服务twemproxy 测试
Redis 存储分片之代理服务twemproxy 测试Redis 存储分片之代理服务twemproxy 测试
Redis 存储分片之代理服务twemproxy 测试kaerseng
 
Essential Product Planning Techniques for Oxford University Press
Essential Product Planning Techniques for Oxford University PressEssential Product Planning Techniques for Oxford University Press
Essential Product Planning Techniques for Oxford University PressPhil Johnson
 
外国人観光客をどう受け入れるか? ~これからの訪日インバウンドビジネスを考える~【20150520インバウンドセミナー】
外国人観光客をどう受け入れるか? ~これからの訪日インバウンドビジネスを考える~【20150520インバウンドセミナー】外国人観光客をどう受け入れるか? ~これからの訪日インバウンドビジネスを考える~【20150520インバウンドセミナー】
外国人観光客をどう受け入れるか? ~これからの訪日インバウンドビジネスを考える~【20150520インバウンドセミナー】株式会社ゼンリン
 
訪日外国人観光客の最新動向【20150520インバウンドセミナー】
訪日外国人観光客の最新動向【20150520インバウンドセミナー】訪日外国人観光客の最新動向【20150520インバウンドセミナー】
訪日外国人観光客の最新動向【20150520インバウンドセミナー】株式会社ゼンリン
 
Okemos windows 888 778 0212
Okemos windows 888 778 0212Okemos windows 888 778 0212
Okemos windows 888 778 0212hansons0588
 
Miwp mobile capture-firststep_2013
Miwp mobile capture-firststep_2013Miwp mobile capture-firststep_2013
Miwp mobile capture-firststep_2013Liberteks
 
Riskpro organisation
Riskpro organisationRiskpro organisation
Riskpro organisationNidhi Gupta
 
Auburn hills mi vinyl siding 888 778 1212
Auburn hills  mi vinyl siding 888 778 1212Auburn hills  mi vinyl siding 888 778 1212
Auburn hills mi vinyl siding 888 778 1212hansons0588
 
It risk advisory brochure 2013
It risk advisory brochure 2013It risk advisory brochure 2013
It risk advisory brochure 2013Nidhi Gupta
 
Handfun shop 개발 가이드
Handfun shop 개발 가이드Handfun shop 개발 가이드
Handfun shop 개발 가이드Guleum Lee
 
Breakfast con l'analistar data protection
Breakfast con l'analistar  data protectionBreakfast con l'analistar  data protection
Breakfast con l'analistar data protectionNetConsultingMilano
 

Viewers also liked (18)

1 2 learning abaqus
1 2 learning abaqus1 2 learning abaqus
1 2 learning abaqus
 
云推送技术实现与敏捷开发
云推送技术实现与敏捷开发云推送技术实现与敏捷开发
云推送技术实现与敏捷开发
 
O pozadini zdravstvenog odgoja
O pozadini zdravstvenog odgojaO pozadini zdravstvenog odgoja
O pozadini zdravstvenog odgoja
 
Costume
CostumeCostume
Costume
 
选择第三方推送
选择第三方推送选择第三方推送
选择第三方推送
 
Essential product design research
Essential product design researchEssential product design research
Essential product design research
 
Redis 存储分片之代理服务twemproxy 测试
Redis 存储分片之代理服务twemproxy 测试Redis 存储分片之代理服务twemproxy 测试
Redis 存储分片之代理服务twemproxy 测试
 
Essential Product Planning Techniques for Oxford University Press
Essential Product Planning Techniques for Oxford University PressEssential Product Planning Techniques for Oxford University Press
Essential Product Planning Techniques for Oxford University Press
 
外国人観光客をどう受け入れるか? ~これからの訪日インバウンドビジネスを考える~【20150520インバウンドセミナー】
外国人観光客をどう受け入れるか? ~これからの訪日インバウンドビジネスを考える~【20150520インバウンドセミナー】外国人観光客をどう受け入れるか? ~これからの訪日インバウンドビジネスを考える~【20150520インバウンドセミナー】
外国人観光客をどう受け入れるか? ~これからの訪日インバウンドビジネスを考える~【20150520インバウンドセミナー】
 
訪日外国人観光客の最新動向【20150520インバウンドセミナー】
訪日外国人観光客の最新動向【20150520インバウンドセミナー】訪日外国人観光客の最新動向【20150520インバウンドセミナー】
訪日外国人観光客の最新動向【20150520インバウンドセミナー】
 
Okemos windows 888 778 0212
Okemos windows 888 778 0212Okemos windows 888 778 0212
Okemos windows 888 778 0212
 
Miwp mobile capture-firststep_2013
Miwp mobile capture-firststep_2013Miwp mobile capture-firststep_2013
Miwp mobile capture-firststep_2013
 
Riskpro organisation
Riskpro organisationRiskpro organisation
Riskpro organisation
 
Auburn hills mi vinyl siding 888 778 1212
Auburn hills  mi vinyl siding 888 778 1212Auburn hills  mi vinyl siding 888 778 1212
Auburn hills mi vinyl siding 888 778 1212
 
It risk advisory brochure 2013
It risk advisory brochure 2013It risk advisory brochure 2013
It risk advisory brochure 2013
 
Handfun shop 개발 가이드
Handfun shop 개발 가이드Handfun shop 개발 가이드
Handfun shop 개발 가이드
 
Disrupt it
Disrupt itDisrupt it
Disrupt it
 
Breakfast con l'analistar data protection
Breakfast con l'analistar  data protectionBreakfast con l'analistar  data protection
Breakfast con l'analistar data protection
 

Similar to Android消息推送之androidpn demo版到正式上线

Hadoop开发者入门专刊
Hadoop开发者入门专刊Hadoop开发者入门专刊
Hadoop开发者入门专刊liangxiao0315
 
rebar erlang 2
rebar erlang 2rebar erlang 2
rebar erlang 2致远 郑
 
和Android源代码一起工作 | 海豚浏览器 胡继堂
和Android源代码一起工作 | 海豚浏览器 胡继堂和Android源代码一起工作 | 海豚浏览器 胡继堂
和Android源代码一起工作 | 海豚浏览器 胡继堂imShining @DevCamp
 
2020 gops-旷视城市大脑私有云平台实践-刘天伟
2020 gops-旷视城市大脑私有云平台实践-刘天伟2020 gops-旷视城市大脑私有云平台实践-刘天伟
2020 gops-旷视城市大脑私有云平台实践-刘天伟Tianwei Liu
 
富文本编辑器在互联网上的应用
富文本编辑器在互联网上的应用富文本编辑器在互联网上的应用
富文本编辑器在互联网上的应用luolonghao
 
Android -汇博
Android -汇博Android -汇博
Android -汇博dlqingxi
 
常用开发工具介绍
常用开发工具介绍常用开发工具介绍
常用开发工具介绍haozes
 
Apache cordova 開發環境建置
Apache cordova 開發環境建置Apache cordova 開發環境建置
Apache cordova 開發環境建置My own sweet home!
 
Enterprise connect
Enterprise connectEnterprise connect
Enterprise connectthinkinlamp
 
基于Android ndk的软件开发简介 放映
基于Android ndk的软件开发简介 放映基于Android ndk的软件开发简介 放映
基于Android ndk的软件开发简介 放映heyfluke
 
基于Android ndk的软件开发简介 放映
基于Android ndk的软件开发简介 放映基于Android ndk的软件开发简介 放映
基于Android ndk的软件开发简介 放映heyfluke
 
20150604 docker 新手入門
20150604 docker 新手入門20150604 docker 新手入門
20150604 docker 新手入門azole Lai
 
Using google appengine_1027
Using google appengine_1027Using google appengine_1027
Using google appengine_1027Wei Sun
 
從頭打造 C#、.NET 與 ASP.NET Core 開發環境
從頭打造 C#、.NET 與 ASP.NET Core 開發環境從頭打造 C#、.NET 與 ASP.NET Core 開發環境
從頭打造 C#、.NET 與 ASP.NET Core 開發環境Will Huang
 
From docker hub to bluemix catalog
From docker hub to bluemix catalogFrom docker hub to bluemix catalog
From docker hub to bluemix catalogJoseph Chang
 
Android应用开发 - 沈大海
Android应用开发 - 沈大海Android应用开发 - 沈大海
Android应用开发 - 沈大海Shaoning Pan
 
Cognos8.3安装配置For Db2
Cognos8.3安装配置For Db2Cognos8.3安装配置For Db2
Cognos8.3安装配置For Db2Franky Lao
 
Using google appengine (2)
Using google appengine (2)Using google appengine (2)
Using google appengine (2)Wei Sun
 

Similar to Android消息推送之androidpn demo版到正式上线 (20)

Hadoop开发者入门专刊
Hadoop开发者入门专刊Hadoop开发者入门专刊
Hadoop开发者入门专刊
 
rebar erlang 2
rebar erlang 2rebar erlang 2
rebar erlang 2
 
Windows 8.1 app 研習營三小時
Windows 8.1 app 研習營三小時Windows 8.1 app 研習營三小時
Windows 8.1 app 研習營三小時
 
和Android源代码一起工作 | 海豚浏览器 胡继堂
和Android源代码一起工作 | 海豚浏览器 胡继堂和Android源代码一起工作 | 海豚浏览器 胡继堂
和Android源代码一起工作 | 海豚浏览器 胡继堂
 
2020 gops-旷视城市大脑私有云平台实践-刘天伟
2020 gops-旷视城市大脑私有云平台实践-刘天伟2020 gops-旷视城市大脑私有云平台实践-刘天伟
2020 gops-旷视城市大脑私有云平台实践-刘天伟
 
富文本编辑器在互联网上的应用
富文本编辑器在互联网上的应用富文本编辑器在互联网上的应用
富文本编辑器在互联网上的应用
 
Android -汇博
Android -汇博Android -汇博
Android -汇博
 
常用开发工具介绍
常用开发工具介绍常用开发工具介绍
常用开发工具介绍
 
Apache cordova 開發環境建置
Apache cordova 開發環境建置Apache cordova 開發環境建置
Apache cordova 開發環境建置
 
Build Your Own Android Toolchain from scratch
Build Your Own Android Toolchain from scratchBuild Your Own Android Toolchain from scratch
Build Your Own Android Toolchain from scratch
 
Enterprise connect
Enterprise connectEnterprise connect
Enterprise connect
 
基于Android ndk的软件开发简介 放映
基于Android ndk的软件开发简介 放映基于Android ndk的软件开发简介 放映
基于Android ndk的软件开发简介 放映
 
基于Android ndk的软件开发简介 放映
基于Android ndk的软件开发简介 放映基于Android ndk的软件开发简介 放映
基于Android ndk的软件开发简介 放映
 
20150604 docker 新手入門
20150604 docker 新手入門20150604 docker 新手入門
20150604 docker 新手入門
 
Using google appengine_1027
Using google appengine_1027Using google appengine_1027
Using google appengine_1027
 
從頭打造 C#、.NET 與 ASP.NET Core 開發環境
從頭打造 C#、.NET 與 ASP.NET Core 開發環境從頭打造 C#、.NET 與 ASP.NET Core 開發環境
從頭打造 C#、.NET 與 ASP.NET Core 開發環境
 
From docker hub to bluemix catalog
From docker hub to bluemix catalogFrom docker hub to bluemix catalog
From docker hub to bluemix catalog
 
Android应用开发 - 沈大海
Android应用开发 - 沈大海Android应用开发 - 沈大海
Android应用开发 - 沈大海
 
Cognos8.3安装配置For Db2
Cognos8.3安装配置For Db2Cognos8.3安装配置For Db2
Cognos8.3安装配置For Db2
 
Using google appengine (2)
Using google appengine (2)Using google appengine (2)
Using google appengine (2)
 

More from kaerseng

3 分钟搞定 android push
3 分钟搞定 android push3 分钟搞定 android push
3 分钟搞定 android pushkaerseng
 
极光推送技术原理解析
极光推送技术原理解析极光推送技术原理解析
极光推送技术原理解析kaerseng
 
推聊 3分钟可运行起来的开源 android手机聊天系统
推聊 3分钟可运行起来的开源 android手机聊天系统推聊 3分钟可运行起来的开源 android手机聊天系统
推聊 3分钟可运行起来的开源 android手机聊天系统kaerseng
 
大容量云推送技术解析
大容量云推送技术解析大容量云推送技术解析
大容量云推送技术解析kaerseng
 
通过Push来提高android应用的活跃度
通过Push来提高android应用的活跃度通过Push来提高android应用的活跃度
通过Push来提高android应用的活跃度kaerseng
 
Androidpn作为android推送方案存在的问题
Androidpn作为android推送方案存在的问题Androidpn作为android推送方案存在的问题
Androidpn作为android推送方案存在的问题kaerseng
 

More from kaerseng (6)

3 分钟搞定 android push
3 分钟搞定 android push3 分钟搞定 android push
3 分钟搞定 android push
 
极光推送技术原理解析
极光推送技术原理解析极光推送技术原理解析
极光推送技术原理解析
 
推聊 3分钟可运行起来的开源 android手机聊天系统
推聊 3分钟可运行起来的开源 android手机聊天系统推聊 3分钟可运行起来的开源 android手机聊天系统
推聊 3分钟可运行起来的开源 android手机聊天系统
 
大容量云推送技术解析
大容量云推送技术解析大容量云推送技术解析
大容量云推送技术解析
 
通过Push来提高android应用的活跃度
通过Push来提高android应用的活跃度通过Push来提高android应用的活跃度
通过Push来提高android应用的活跃度
 
Androidpn作为android推送方案存在的问题
Androidpn作为android推送方案存在的问题Androidpn作为android推送方案存在的问题
Androidpn作为android推送方案存在的问题
 

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:
  • 2. # 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 的用户名和密码 其他的就不多说了. 如果没有意外的话,服务器启动成功后,可以在浏览器里输 入:http://localhost:8080/ 就可以出现如下界面:
  • 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