【问题标题】:Get Offline messages in XMPP在 XMPP 中获取离线消息
【发布时间】:2012-11-02 11:23:13
【问题描述】:

在我的聊天应用程序中,我想在用户登录时获取离线消息(如果有人向他发送消息)。当用户处于在线状态并且在用户重新登录后无法获取消息时,我会收到通知。我也检查了 xmpp 日志猫。我可以在那里阅读离线消息,但我无法通知用户他/她的离线消息。

这是我在服务的 onStart 中使用的监听器(服务在用户登录时立即启动)

PacketFilter filter = new MessageTypeFilter(Message.Type.chat);
        final PacketCollector collector = connection.createPacketCollector(filter);
        connection.addPacketListener(new PacketListener() {

            @Override
            public void processPacket(Packet packet) {
                // TODO Auto-generated method stub
                //notification(packet.getFrom());
                packet = collector.nextResult();
                Message message = (Message)packet;
                senderName = packet.getFrom();

                int alphaPOS = senderName.indexOf("@");
                String subSenderName = senderName.substring(0,alphaPOS); 


                if(UserChatActivity.checkPresence==false){

                    notificationforChat(subSenderName+": "+message.getBody(),packet.getFrom().toString());

               }

            }

        }, filter);

    }

当用户在线时,这可以正常工作。但我希望一旦用户登录,他应该被通知他的消息

谢谢

【问题讨论】:

    标签: android xmpp chat offline


    【解决方案1】:

    您必须确保您的 XMPP 服务器支持 XEP 0136,这是 XMPP 的消息归档扩展。

    该扩展名将解释如何检索已归档的消息。

    对于ejabberd,您可以为此安装和配置the mod_archive extension。它将消息保存到 SQL 后端。

    【讨论】:

    • 感谢 helo @JC Brand。以上不能是一个解决方案吗?许多程序员已经实现了上述一项。 Log cat 也显示离线消息。我见过我自己。谢谢
    • 如果您只想在用户离线时将消息发送给他/她,那么我认为这在很大程度上取决于您的 XMPP 服务器。我使用 ejabberd,一旦用户登录它就会立即发送离线消息。
    • 好的,感谢您的帮助。好的,你的手段是你的好,但我认为它是相反的。我们可以用上面的或离线消息管理器类型的任何其他方式来做吗?
    • @JCBrand 你有什么解决方案吗??
    【解决方案2】:

    更改过滤器以过滤 Message.class 类型的消息而不是聊天消息,因为离线消息不是聊天类型(我不认为)

    PacketFilter filter = new PacketTypeFilter(Message.class);
    

    看看你的表现。

    实际上是在重新阅读您的问题;您是说您可以在 LogCat 中看到正在接收的离线消息,但在屏幕上看不到?您在哪里记录收到的消息?

    【讨论】:

      猜你喜欢
      • 2017-03-21
      • 2017-03-19
      • 2015-06-07
      • 1970-01-01
      • 2017-04-02
      • 2016-02-28
      • 2015-04-22
      • 2014-11-13
      • 2016-12-09
      相关资源
      最近更新 更多