【问题标题】:Presence listener not working in asmack存在监听器不在 asmack 中工作
【发布时间】:2013-05-09 13:54:08
【问题描述】:

我正在使用 asmack 为 Android 开发一个聊天应用程序。连接正在建立,我也可以登录。我已经为 IQ 数据包添加了侦听器,并且工作正常。我还为 Presence 数据包添加了监听器,这是我的代码:

PacketTypeFilter presenceFilter=new PacketTypeFilter(Presence.class);

connection.addPacketListener(new PacketListener() {
    public void processPacket(Packet packet) {
        Presence presence = (Presence)packet;

        Log.d("test1","Presence packet came :From:"+presence.getFrom()+",Packet ID:"+presence.getPacketID()+",Priority:"+presence.getPriority()+",To:"+presence.getTo()
                            +",Exn:"+presence.toXML());

        if (presence.getType() == Presence.Type.available) {
             Log.d("test1","User available");
        }
        else if (presence.getType() == Presence.Type.unavailable) {
                        Log.d("test1","User not available");
        }
    }
}, presenceFilter);

我的问题是,这个监听器永远不会被任何传入的 Presence 数据包调用。它适用于外向的人。 我不能使用名册来处理存在,因为我们的服务器正在使用一些智能路由服务来处理用户可用性。 我在这里做错什么了吗?任何输入都会有所帮助。

【问题讨论】:

    标签: android xmpp smack asmack


    【解决方案1】:

    如果您不能使用名册,那么您确定任何存在都首先发送给该客户吗?

    客户端登录的用户是否在网络上其他用户的名册上?

    您是否测试过使用可以编辑原始 xml 的客户端向客户端显式发送存在数据包?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-12
      • 1970-01-01
      • 2012-07-31
      • 1970-01-01
      • 1970-01-01
      • 2021-12-04
      • 1970-01-01
      • 2017-05-18
      相关资源
      最近更新 更多