过程:
首先打开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文件中配置,在该文件的加上如下配置:
- <role rolename="manager-gui"/>
- <user username="tomcat" password="tomcat" roles="manager-gui"/>
<role rolename="manager-gui"/> <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
更多关于MQTT的讲解:Android消息推送(二)--基于MQTT协议实现的推送功能
转自:http://blog.csdn.net/johnny901114/article/details/7715758
相关推荐
androidpn客户端需要用到一个基于java的开源XMPP协议包asmack,这个包同样也是基于openfire下的另外一个开源项目smack,不过我们不需要自己编译,可以直接把androidpn客户端里面的asmack.jar拿过来用。客户端利用...
该设计基于XMPP协议的AndroidPn框架,使用MySQL数据库和Tomcat服务器实现了实时推送消息、自定义消息结构和内容、推送服务启动、手机端服务唤醒、发送离线消息等实用技术。 四、AndroidPn框架介绍 AndroidPn框架是...
综上所述,XMPP协议在Android客户端的开发中扮演了重要角色,Asmack和AndroidPN这样的工具和框架则为开发者提供了实现XMPP功能的便捷途径。通过它们,开发者可以构建出强大、安全、高效的实时通信应用。
AndroidPN服务器是基于XMPP协议构建的,用于向Android设备发送推送通知。服务器接收来自应用的请求,然后将消息推送到注册的Android设备。运行这个服务端需要Java环境支持,并配置好相应的数据库连接和推送设置。 2...
在本文中,我们将深入探讨如何使用XMPP协议在Android平台上实现一个完整的即时通讯(IM)系统,包括客户端和服务器端的实现。XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的开放标准,广泛用于...
**XMPP协议详解** XMPP(Extensible Messaging and Presence Protocol,可扩展消息传递及存在协议)是一种基于XML的实时通信协议,广泛应用于即时通讯、消息推送、在线状态追踪等领域。它的设计目标是允许用户和...
Tomcat版的AndroidPN(Push Notification)项目是基于XMPP协议的一个推送通知服务,它利用了Tomcat服务器和MySQL数据库来处理和存储推送信息。 首先,要搭建这个系统,你需要确保已经安装了Java Development Kit ...
使用XMPP协议实验消息推送(push),还用例子demo,可以参考学习
【标签】"XMPP聊天通讯Socket"明确了主要涉及的技术点,即使用XMPP协议通过Socket进行聊天通信。Socket是网络编程的基础,它允许应用程序通过TCP/IP协议发送和接收数据,而XMPP正是通过Socket连接到服务器进行通讯的...
- "XMPP协议工作原理 - 郭懋林的日志 - 网易博客.mht" 这篇文章可能详细解释了XMPP协议的基本工作流程,包括连接建立、消息传输和断开过程。 - "XMPP协议原理介绍.mht" 可能是关于协议的概述,涵盖了XMPP的核心概念...
百度地图定位,和基于Xmpp协议的消息推送。用的是Androidpn集成 到自己项目中,添加了自己的一些功能。仿照闺蜜圈做的demo.很实用,对新手很有帮助。特别对于刚毕业没做过项目的Android开发者来说很实用。
基于XMPP协议、使用Androidpn服务器,Asmack编程的即时通讯IM客户端源代码;主要功能实现向客户端推送消息!
在AndroidPN中,消息传递依赖于XMPP(Extensible Messaging and Presence Protocol),这是一种基于XML的即时通讯协议,广泛应用于即时聊天、推送通知等领域。 在AndroidPN的协议交互中,我们可以看到以下几个关键...
而AndroidPN作为一种基于XMPP协议的推送解决方案,在解决这些问题上展现出了其独特的优势。 #### 二、AndroidPN推送机制概述 AndroidPN是一个开源项目,它提供了一种用于Android设备的消息推送服务。其核心优势...
首先,AndroidPN(Android Push Notification)客户端版本0.5.0是一个开源项目,它实现了使用XMPP协议为Android设备提供推送通知服务。这个项目可以帮助开发者学习如何在Android应用中集成即时通讯功能,例如创建...
总的来说,AndroidPN加强版本是利用XMPP协议实现的Android设备推送服务,通过优化和增强功能,为开发者提供了更高效、可靠的推送解决方案。无论是客户端还是服务器端,都有可能在原始基础上进行了多方面的改进,以...
总之,"androidpn-tomcat-0.5.0"项目是实现Android设备推送通知服务的一种解决方案,它结合了Tomcat服务器的稳定性和XMPP协议的实时性,为开发者提供了构建高效实时通信系统的基础。开发者可以通过深入理解和定制这...
AndroidPN(Android Push Notification)是一种基于XMPP协议的开源消息推送系统,专为Android平台设计。这个项目包含两部分:客户端应用和服务器端组件。在本文中,我们将深入探讨这两个部分以及它们的工作原理。 ...