gpt4 book ai didi

android - 在 XMPP 中获取离线消息

转载 作者:太空狗 更新时间:2023-10-29 13:33:22 25 4
gpt4 key购买 nike

在我的聊天应用程序中,我想在用户登录时获取离线消息(如果有人向他发送消息)。当用户处于在线状态时我收到通知,并且在用户重新登录后无法收到消息。我也检查了 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);

}

这在用户在线时工作正常。但我希望一旦用户登录,他就应该收到消息通知

谢谢

最佳答案

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

同一个扩展将解释如何检索存档的消息。

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

关于android - 在 XMPP 中获取离线消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13194240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com