`

android 之 服务器主动向手机端推送消息-windows下Androidpn环境搭建

阅读更多

http://blog.csdn.net/attitudeisaltitude/article/details/10097043

前段时间参与了一个项目,最近有空就来总结以下。时常总结才会进步,尤其是做技术,要不就会很容易陷入狗熊掰棒子的窘境。

我在项目中完成的模块是实现服务器主动向android手机端推送消息。老师的要求是用C语言在Linux下写一个服务器来实现服务器主动向android手机端推送消息。经过收集资料,最终发现一个韩国人写的开源项目Android Push Notification(简称Androinpn)可以实现此功能。androidpn是一个基于XMPP协议的java开源Android push notification实现。它包含了完整的客户端和服务器端。官方网址是:http://sourceforge.net/projects/androidpn/。我用的版本是一个经过国人大神修改后的版本,里面有一些这个大神做的注释,更便于我们理解(再此表示对这位大神的感谢)。可以从这里下载到这个修改后的版本:推送.rar。下载后得到的是一个压缩包。解压后得到,其中Androidpn是服务器端程序,是一个 Java Web应用程序,androidpn-client是android程序。下面介绍下将这个开源项目运行起来的环境配置。

因为之前没做过java的项目,所以下面写的会小白一点。

首先是服务器端,服务器端是一个Java Web应用程序,首先要运行java程序就要装jdk。我装的jdk版本是,windows下安装只需要一路next就好了,只是要注意安装路径。安装完JDK后需要配置下环境变量,我的是win7系统配置过程如下:鼠标右击计算机----->属性---->高级系统设置(在左边栏)---->环境变量---->在系统环境变量中进行如下操作:1、新建->变量名:JAVA_HOME 变量值:D:\Program Files\Java\jdk1.6.0_10(这里就是你jdk的安装目录)。2、新建->变量名:CLASSPATH 变值:.;%JAVA_HOME%\lib

(注意最前面有个点)。3、编辑->变量名Path :在Path 变量值的最前面加上:%JAVA_HOME%\bin;

完成后使用文本编辑器(比如:edit.com/记事本/UltraEdit/EditPlus)编写如下代码,并保存为文件HelloWorld.java如下:


[java] view plaincopyprint?
01.<SPAN style="FONT-SIZE: 14px">/* HelloWorld.java */ 
02.  public class HelloWorld { 
03. 
04.  public static void main(String arg[]) { 
05. 
06.  System.out.println("Hello, World!"); 
07. 
08.  } 
09. 
10.  }</SPAN> 
/* HelloWorld.java */
  public class HelloWorld {

  public static void main(String arg[]) {

  System.out.println("Hello, World!");

  }

  }开启一个DOS窗口,跳转到HelloWorld.java所在的目录中,执行以下操作,,如上则表明我们的jdk安装成功。

服务器端是一个java Web应用程序,要运行此程序我们需要在eclipse中安装apache-tomcat。安装步骤如下:
首先下载 对应 eclipse 版本的 tomcat 插件版本,(这里要注意: Tomcat 插件是Tomcat 插件,Tomcat 是 Tomcat, 两者不能混淆!)下载地址:http://www.eclipsetotale.com/tomcatPlugin.html。
然后将得到的压缩包解压,放入 eclipse 的 plugins 目录中重启 eclipse, Tomcat 插件安装成功!当然安装成功并不代表能使用,这里还要配置 Tomcat, 才能正常使用 Tomcat 插件。
配置过程:
首先下载当前 Eclipse 能使用的 Tomcat 版本,下载地址:http://tomcat.apache.org/(我用的是apache-tomcat-7.0.32)。然后解压到指定的目录,然后配置:Eclipse - toolsbar  ->  Window  ->  Prefences  ->  Tomcat  -> 指向刚才 Tomcat 解压的目录,到此配置完成,下面截个图:





使用 Tomcat 插件可以启动、关闭 Tomcat。
因为服务器端的Web应用程序用到了mysql数据库,所以我们还得要装mysql数据库,我用的

mysql数据库版本是mysql-5.5.20-win32.exe。windows下的安装也是一路next,

这里需要注意的是别忘了安装过程中设置的root密码。
准备环境都搭好了以后,现在我们将服务器端程序Androidpn,import到eclipse中

(在eclipse左边的工程界面区右键---->import---->General---->Existing Projects into Workspace

---->Browse---->找到Androidpn位置---->finish)。导入完成后需要修改工程中的jdbc.properties文件,

将其中的jdbcUsername和jdbcPassword两项改为你本机的mysql的用户名和密码。







根据jdbc.properties配置文件中

可得我们要用到一个androidpn数据库,而刚装好的mysql中并没有这个数据库,

所以我们需要在mysql数据库中用:create database androidpn;这条命令来建立androidpn数据库。

一切都完成后我们运行Androidpn程序(右击工程区的Androidpn---->Run as---->Run on Server)。

运行成功后我们在浏览器地址栏中输入:http://localhost:8080/index.do可以看到Androidpn服务器端所对应的4

个页面:







初始这里应该是空的,上面那条记录是我之前连得。







服务器端运行成功后,会在我们刚创建的androidpn数据库中创建两张表:



其中apn_user存储用户的信息,当我们要向指定用户发送消息时就可以从这张表中通过查找用户名,来向指定的用户发送消息。apn_notification是存储发送消息内容的一张表。

服务器端运行起来了我们在来看客户端程序androidpn-client。androidpn-client是一个android程序,只需要将这个android程序导入到eclipse中然后在模拟器中运行即可。这里需要注意的是我们需要修改androidpn-client工程中的res/raw/androidpn.properties文件中的xmppHost这一项:





如果是要在模拟器中运行就将xmppHost这项修改为10.0.2.2:xmppHost=10.0.2.2。如果是要在真机上运行就将此项改为androidpn服务器端主机的地址。

启动androidpn-client后(右击工程区的androidpn-client---->Run
as---->Android Application)模拟器的效果为:




现在就可以感受服务器端向android手机端推送消息了。

首先启动Androidpn服务器端,然后再启动客户端androidpn-client,这时在服务器端浏览器中的页面就会显示登录的客户端的信息:







到推送消息页面推送一条消息:




这时客户端模拟器接收到了消息,拉下上边栏即可看到:















我的任务是要用C语言在linux写一个服务器,然后就寻找解决方法。网上有前辈告诉我Webservise

这种技术可以实现我的需求,于是就开始学习Webservice技术。至于我对Webservice技术的学习放到下一篇再讲吧。
分享到:
评论

相关推荐

    androidpn 消息推送客户端+服务器端

    AndroidPN(Android Push Notification)是一种基于XMPP协议的开源消息推送系统,专为Android平台设计。这个项目包含两部分:客户端应用和服务器端组件。在本文中,我们将深入探讨这两个部分以及它们的工作原理。 ...

    消息推送-androidpn

    AndroidPN(Android Push Notification)是一款专为Android平台设计的消息推送框架,它允许开发者实现在服务器端向客户端设备发送通知,极大地提升了应用的实时性和用户互动性。通过AndroidPN,开发者可以及时将新...

    androidpn-server-0.5.0-bin、androidpn-client-0.5.0、androidpn-demoapp-0.5.0

    服务器端是整个推送系统的核心,它负责接收来自应用开发者或后台系统的推送消息,并将这些消息推送到已注册的Android设备。服务器端通常需要配置数据库连接(如MySQL)以及API密钥,以便与客户端进行安全通信。...

    androidpn-client-0.5.0和androidpn-server-0.5.0-bin

    总的来说,"androidpn-client-0.5.0"和"androidpn-server-0.5.0-bin"是构建高效、可靠的Android消息推送服务的基础,它们共同实现了从服务器到设备的无缝消息传递,极大地丰富了Android应用的功能性和用户体验。...

    androidpn服务器推送

    5. **Android客户端实现**:在Android手机端,开发者需要集成AndroidPN库,创建一个持久化的连接到服务器,并实现消息接收器来处理接收到的推送消息。此外,还需要处理网络变化、设备休眠等情况下的消息处理。 6. *...

    androidpn-client-0.5.0.zip和androidpn-server-0.5.0-bin.zip

    AndroidPN实现了从服务器到android移动平台的文本消息推送。这里先简单说一下androidPN的安装过程。 下载androidpn-client-0.5.0.zip和androidpn-server-0.5.0-bin.zip 网址:...

    androidpn推送服务器端+手机端(版本3.0)

    综上所述,"androidpn推送服务器端+手机端(版本3.0)"的项目涵盖了服务器端和客户端的推送通知实现,涉及了Java编程、数据库管理、网络通信、Android应用开发等多个技术领域。开发者可以通过学习和实践这个项目,...

    androidpn消息推送

    AndroidPN(Android Push Notification)是一种基于Google Cloud Messaging (GCM) 的第三方消息推送服务,用于在Android设备上实现后台消息的实时推送。AndroidPN的主要功能是帮助开发者在应用程序不运行时,仍然...

    【整理】解刨AndroidPN消息推送.pdf

    Android消息推送技术是移动应用中常见的一种即时通讯机制,它允许服务器向移动设备发送消息和通知。在这个过程中,AndroidPN(Android Push Notification)是其中一种流行的消息推送服务解决方案,通常应用于Android...

    androidpn 消息推送 服务器端源码

    AndroidPN(Android Push Notification)是一个专门针对Android平台设计的消息推送系统,其服务器端源码的开放为开发者提供了自定义和扩展的可能性。本文将深入探讨AndroidPN服务器端源码的关键知识点,帮助开发者...

    androidpn 服务端和android端源代码

    然后是Android端,"androidpn-client"表示这是Android应用程序的源代码,它负责接收并处理来自服务端的推送消息。客户端主要涉及以下组件和技术: 1. 应用注册:在启动时,客户端会向服务端注册,获取设备的唯一...

    androidpn-client推送客户端

    AndroidPN(Android Push Notification)客户端是一款专门为Android操作系统设计的应用程序,用于实现远程服务器向设备推送通知的功能。在移动应用开发中,推送通知是一项至关重要的特性,它允许应用程序在后台状态...

    androidpn-client-0.5.0 AND androidpn-server-0.5.0

    使用Apndroid Push Notification 实现android信息推送,AndroidPn项目是使用XMPP协议实现信息推送的一个开源项目。内涵服务端和客户端源码

    androidPN推送服务器

    综上所述,AndroidPN为开发者提供了一个自主可控的推送服务框架,通过配置MySQL和Apache Tomcat,开发者可以快速搭建起自己的推送服务器,从而实现与Android设备的实时通信。在实际项目中,可以根据需求进行功能扩展...

    androidpn消息推送-tomcat版

    **AndroidPN消息推送-Tomcat版**是一种用于Android设备的消息推送系统,它利用XMPP协议实现了客户端与服务器之间的实时通讯。本系统分为客户端和服务端两大部分,采用Java语言编写,并结合了Asmack库与Openfire...

    androidpn 推送系统

    AndroidPN(Android Push Notification)是一种基于Android平台的推送通知服务,它允许开发者向用户的设备发送实时消息,即使应用在后台或完全关闭的状态下也能接收到这些消息。这种服务对于提高用户体验,保持应用...

    基于androidpn设计的android远程推送demo

    在Android应用开发中,远程推送服务是一个至关重要的功能,它允许服务器向已安装的应用程序发送消息,即使应用程序在后台或完全关闭的情况下也能接收到。基于AndroidPN(Android Push Notification)设计的Android...

    androidpn离线推送

    AndroidPN离线推送是一种在Android平台上实现的消息推送技术,它允许应用在用户设备处于离线状态时仍能接收到服务器发送的通知。这个技术的核心在于优化应用程序的通信效率,提高用户体验,尤其是在用户没有打开应用...

Global site tag (gtag.js) - Google Analytics