AndroidPn消息推送
接着前面的工作,消息接收之后,要推送给不同的客户端。关于消息推送,网上有很多方式,http长连接,xmpp协议,还有一个谷歌的貌似叫C2DM的东西。
在此之前,用openfire做了一个小demo,例子是在网上找到的。也可以实现和AndroidPn差不多的一些功能,包括点对点,广播消息,反正都是xmpp协议的。
客户端是安卓的,所以,用androidpn。
这个东西是韩国人写的,官方文档也都是韩文(呵呵)。
(一)运行源码
源码是用myeclipse编译的,在eclipse里面,要处理一下,属性有个project facets,修改一下。也可以新建一个web工程,把原来eclipse里面的东西拷贝过来,不过比较麻烦。本人采用的就是这种麻烦的方式,不管怎么样,这样自己建立的工程,比较干净。
其中,会有几个注意事项,首先是数据源的配置,这个要自己修改为自己的数据库。源码用的是hibernate连接,在配置里面,修改即可。只要数据库连接的没问题,其他一般不会报错。
然后就是跑起来的时候,有些东西会发生404,比如:

这里面的,home,users,sessions这些按钮。
因为源码用的是sitemesh的模板技术,里面的路径的地址应该是按照原myeclipse的,这个问题应该是新建项目引起的,修改一下webroot下面decorators里的default文件,将tabmenu里面的几个连接路径修改一下,去掉前面的/就好了。
(二)源码运行
当推送消息的时候,会调用NotificationManager类中的sendBroadcast或者sendNotifcationToUser方法。
这里用的是广播,里面会发一个字符串作为消息体。
在我们的项目里,就可以调用这个方法,来推送消息了。
百度文库里有一篇介绍,关于使用该源码的两个场景的配置。
http://wenku.baidu.com/link?url=qW7UPz9p3v4VyuNJJc1H7jP4QY4uBKTJtNEBhPJRhakWD_OCN2kXvTLRH0fx7fg7Xd9J-NCX_JlvgjDu-kMnQJCtk_Sgms-6QAGYcqZTFeW
主要是要注意,如果你的项目中也存在spring的话,如果也有数据源,这些bean有可能冲突。
AndroidPn消息推送的更多相关文章
- Android消息推送怎么实现?
在开发Android和iPhone应用程序时,我们往往需要从服务器不定的向手机客户端即时推送各种通知消息,iPhone上已经有了比较简单的和完美的推送通知解决方案,可是Android平台上实现起来却相 ...
- Android消息推送
1.引言 所谓的消息推送就是从服务器端向移动终端发送连接,传输一定的信息.比如一些新闻客户端,每隔一段时间收到一条或者多条通知,这就是从服务器端传来的推送消息:还比如常用的一些IM软件如微信.GTal ...
- Android消息推送完美方案[转]
转自 Android消息推送完美方案 推送功能在手机应用开发中越来越重要,已经成为手机开发的必须.在Android应用开发中,由于众所周知的原因,Android消息推送我们不得不大费周折.本文就是用来 ...
- Android消息推送完美方案
转自:http://bbs.hiapk.com/thread-4652657-1-1.html 推送功能在手机应用开发中越来越重要,已经成为手机开发的必须.在Android应用开发中,由于众所周知的原 ...
- Android消息推送完美解决方案全析
推送功能在手机应用开发中越来越重要,已经成为手机开发的必须.在Android应用开发中,由于众所周知的原因,Android消息推送我们不得不大费周折.本文就是用来和大家共同探讨一种Android消息推 ...
- Android 基于Netty的消息推送方案之Hello World(一)
消息推送方案(轮询.长连接) 轮询 轮询:比较简单的,最容易理解和实现的就是客户端去服务器上拉信息,信息的及时性要求越高则拉信息的频率越高.客户端拉信息的触发可以是一些事件,也可以是一个定时器,不断地 ...
- android系统下消息推送机制
一.推送方式简介: 当前随着移动互联网的不断加速,消息推送的功能越来越普遍,不仅仅是应用在邮件推送上了,更多的体现在手机的APP上.当我们开发需要和服务器交互的应用程序时,基本上都需要获取服务器端的数 ...
- [android] 安卓消息推送的几种实现方式
消息推送的目的:让服务器端及时的通知客户端 实现方案 轮询:客户端每隔一定的时间向服务器端发起请求,获得最新的消息 特点:如果用在最新新闻通知上,效率就有点低了,技术简单,好实现 应用场景:服务器端以 ...
- android热门消息推送横向测评![转]
关于这个话题,已经不是什么新鲜事了.对于大多数中小型公司一般都是选择第三方的服务来实现.但是现在已经有很多提供推送服务的公司和产品,如何选择一个适合自己项目的服务呢?它们之间都有什么差别?在此为大家做 ...
随机推荐
- DES_3DES_AES_IDES_RSA密码算法比较
对称加密算法(也叫共享密钥) 类型 定义:发送接收使用相同的对称密钥 密钥 长度 分组长度 循环次数 安全性 DES 数据加密标准,速度较快,适用于加密大量数据的场合: 56 64 16 依赖密钥受穷 ...
- php去除bom
<?php /*检测并清除BOM*/ if(isset($_GET['dir'])){ $basedir=$_GET['dir']; }else{ $basedir = '.'; } $auto ...
- <input type="date">设置默认当前日期
日期选择器如下: <input type="date" id="start_date" name="start_date"> 注 ...
- Android logcat输出中文乱码
使用adb的logcat 命令查看系统日志缓冲区的内容,会发现在CMD的界面面,直接输出的中文内容是乱码. 这个问题出现在使用logcat将日志直接打印在当前的DOS窗口的时候会出现:使用logcat ...
- 前端知识--------HTML内容
HTML介绍 1.web服务本质 import socket sk = socket.socket() sk.bind(('127.o.o.1',8080)) sk.listen() while 1: ...
- C++ 内存解析
一.内存基本构成可编程内存在基本上分为这样的几大部分:静态存储区.堆区和栈区.他们的功能不同,对他们使用方式也就不同. 静态存储区:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在 ...
- label文字从左上角开始
import UIKit class TextUpperLeftLabel: UILabel { override func textRect(forBounds bounds: CGRect, li ...
- discuz回贴通知插件实现-用户状态设置
1.获取用户提交数据 discuz通过$_GET来获取全部数据,包括($_GET,$_POST). else if($_GET['pluginop'] == 'set') { //获取用户提交数据 $ ...
- 怎样完整地离线更新并升级基于 Debian 的操作系统
不久之前我已经向你展示了如何在任意离线的 Ubuntu 和 Arch Linux 操作系统上安装软件. 今天,我们将会看看如何完整地离线更新并升级基于 Debian 的操作系统. 和之前所述方法的不同 ...
- spring mvc 默认页面
只需要在servlet.xml页面中添加如下配置: <mvc:view-controller path="/" view-name="login"/> ...