gpt4 book ai didi

ios - 将重复消息存储在 XMPPMessageArchiving_Message_CoreDataObject 中(单聊)

转载 作者:行者123 更新时间:2023-11-30 11:32:57 24 4
gpt4 key购买 nike

我们正在使用XMPP框架制作聊天应用程序。我们使用“XMPPMessageArchiving_Message_CoreDataObject”来显示和存储聊天数据。但是有时会多次收到一条消息,并且该重复的消息存储在“XMPPMessageArchiving_Message_CoreDataObject”中。所以在显示时显示一条消息多次。

设置流方法使用以下代码启用此模块:-

xmppMessageArchivingStorage = 
XMPPMessageArchivingCoreDataStorage.sharedInstance()
xmppMessageArchivingModule =
XMPPMessageArchiving(messageArchivingStorage :
xmppMessageArchivingStorage!)
xmppMessageArchivingModule?.clientSideMessageArchivingOnly = true
xmppMessageArchivingModule?.activate(xmppStream!)
xmppMessageArchivingModule!.addDelegate(self, delegateQueue:
DispatchQueue.main)

从数据库获取数据:-

let storage = XMPPMessageArchivingCoreDataStorage.sharedInstance() 
let moc: NSManagedObjectContext? =
storage?.mainThreadManagedObjectContext let entityDescription =
NSEntityDescription.entity(forEntityName:
"XMPPMessageArchiving_Message_CoreDataObject", in: moc ??
NSManagedObjectContext())
let request = NSFetchRequest<NSFetchRequestResult>.init(entityName:
"XMPPMessageArchiving_Message_CoreDataObject")
request.predicate = NSPredicate(format: "bareJidStr = %@ AND
streamBareJidStr = %@",
senderJID!,Constants.appDelegate.jabberID!)
request.entity = entityDescription
let messages = try! moc?.fetch(request) as! [AnyHashable]

在“messages”数组中获取所有重复的消息字符串并显示重复的消息。

如果有人有删除聊天重复消息的解决方案,请帮助我。

提前致谢,

最佳答案

嘿,解决问题有两个步骤,但在此之前,了解为什么会收到重复消息非常重要。如果 Xmpp 向您发送重复的消息。可能还有其他一些配置问题,无论如何,让我们来解决您当前的问题。将第二行代码添加到提取请求中以检索消息

let request = NSFetchRequest<NSFetchRequestResult>.init(entityName:
"XMPPMessageArchiving_Message_CoreDataObject")
request.returnsDistinctResults = true //Add this line

将消息插入数据库时​​,您需要确认该特定 id 是否存在消息,要在 XMPP 中为消息添加 id,您需要在向服务器发送消息时添加一些代码:

    NSString *messageID = [XMPPStream  generateUUID];
[self addAttributeWithName:@"id" stringValue:messageID];

关于ios - 将重复消息存储在 XMPPMessageArchiving_Message_CoreDataObject 中(单聊),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50060792/

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