论坛首页 移动开发技术论坛

用androidpn来实现推送

浏览 218410 次
精华帖 (0) :: 良好帖 (4) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-06-15  
crking32 写道
我将androidpn放入自己项目中,服务端一直报错,咋回事呢?
{ERROR} [2012-06-15 14:38:59,533] <org.androidpn.server.xmpp.net.XmppIoHandler> : java.lang.NoClassDefFoundError: Could not initialize class org.androidpn.server.xmpp.ssl.SSLConfig

SSLConfig这个类明明是存在的啊?

我的也是,这就是bug吧
0 请登录后投票
   发表时间:2012-06-16  
小弟也在研究这个。能否发份最新的代码给我。谢谢
masterfw@126.com
0 请登录后投票
   发表时间:2012-06-20  
万分感谢牛人的分享,帮了很大的忙。然后再劳烦牛人帮忙解答一下 openfire和androidpn有啥关系?他们之间的主要区别是啥?还有androidpn能够支持多大的用户量并发?有没有参考性的数据?再次感谢
0 请登录后投票
   发表时间:2012-07-03  
zsxsilence 写道
万分感谢牛人的分享,帮了很大的忙。然后再劳烦牛人帮忙解答一下 openfire和androidpn有啥关系?他们之间的主要区别是啥?还有androidpn能够支持多大的用户量并发?有没有参考性的数据?再次感谢

应该是基于openfire开发的。大量用户,应该不行。
0 请登录后投票
   发表时间:2012-07-12  
shiwenbin770 写道
zsg88 写道
花了一个下午的时间把后台修改成spring + hibernate + struts2 + tomcat能正常地跑起来了,经测试和手机连接正常发消息没有问题。

我现在正在做这个推送的,我是初学者,能把源码发给我研究一下吗?
我的邮箱是874655299@qq.com
不管发不发,先谢拉。兄弟!


兄弟,代码也发我一份。124597202@qq.com
0 请登录后投票
   发表时间:2012-07-13  
zsg88 写道
cdztop 写道
2、假如我现在要实现的效果是这样的:一个用户只需要一个帐号(username,password),只有一台PushServer服务器,但是有很多需要push功能的Android应用,然后push的条件的username+对应的客户端应用。
我的想法是:xmpp里面有<node@domain/home>和<node@domain/work>,我想domain就是PushServer,home和work就是Android客户端的应用名,node就是帐号的username。我也试着测试了一下。但是有一个问题。
在session里面的列表是正常的,就是有两个名为username的session,但是users列表的对应user都是离线的,服务器广播出来的信息都收不到。
我想是SessionManager里面的public ClientSession getSession(String username)这个方法的问题。
它原来是:   
private static final String RESOURCE_NAME = "AndroidpnClient";
public ClientSession getSession(String username) {
    return getSession(new JID(username, serverName, RESOURCE_NAME, true));
}
这个RESOURCE_NAME就是我上面说的home和work的意思。
不知道你有没有明白我的意思。

总之就是一个username怎么才能有2个RESOURCE_NAME。而且能根据RESOURCE_NAME和username唯一确定一个ClientSession。




我的ssh版本,

在同一手机上运行2个客户端RESOURCE_NAME分别为AndroidpnClient和AndroidpnClient2

session.do页面显示2个在线,user.do页面显示一个在线。

打开UserController类,可以看到判断user是否在线的方法是presenceManager.isAvailable(user)

最终调用的是SessionManager

    public ClientSession getSession(String username) {
        // return getSession(new JID(username, serverName, null, true));
        return getSession(new JID(username, serverName, RESOURCE_NAME, true));
    }

注意:new JID(username, serverName, RESOURCE_NAME, true) 只指定了一个RESOURCE_NAME,表示只查找名称为RESOURCE_NAME所代表的应用用户,所以另外一个应用的用户就查找不到了。

把当前这行注释掉

把被注释的上一行打开,return getSession(new JID(username, serverName, null, true))
这里RESOURCE_NAME被设定为null,不指定具体应用名称

修改
public ClientSession getSession(JID from){
   ......
   //if (from.getResource() == null || from.getNode() == null) {
   //      return null;
   //}
      
   if (from.getResource() == null) {
      if (from.getNode() != null) {
for (ClientSession session : clientSessions.values()) {
   if (session.getAddress().getNode().equals(from.getNode())) {
      return session;
   }
}
      } else {
        return null;
      }
    }
     
    return clientSessions.get(from.toString());
}

重起运行,见图,附件

图太大了,点开看

第一张是 session列表
第二张是 user列表



大虾 SSH整合的代码是否能发我一份,灰常感谢!446330342@qq.com
0 请登录后投票
   发表时间:2012-07-26  
请问XmppServer.java中的locateServer()方法中的String baseDir = System.getProperty("base.dir", "..");  这是取什么
0 请登录后投票
   发表时间:2012-08-02  
那个下载地址下载不了,可以把源码直接发给我吗
0 请登录后投票
   发表时间:2012-08-09  
张子游 写道
zsg88 写道
花了一个下午的时间把后台修改成spring + hibernate + struts2 + tomcat能正常地跑起来了,经测试和手机连接正常发消息没有问题。
求开源,哈哈

我现在需要在现在软件的基础上加上一个推送的功能,但是不知道怎么跟androidpn建立连接,怎么让androidpn把这个消息接收到然后帮我推送出去,麻烦指点一下,顺便求源码395767444@qq.com
0 请登录后投票
   发表时间:2012-08-09  
zsg88 写道
花了一个下午的时间把后台修改成spring + hibernate + struts2 + tomcat能正常地跑起来了,经测试和手机连接正常发消息没有问题。

麻烦发下SSH的版本 395767444@qq.com
0 请登录后投票
论坛首页 移动开发技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics