Xmpp 在ios中存储聊天历史记录

Xmpp 在ios中存储聊天历史记录,xmpp,chat,openfire,xmppframework,Xmpp,Chat,Openfire,Xmppframework,我们使用Amazon Ubuntu服务器,Apache和PHP安装了Openfire 4.0.1版,应用程序配置是使用Swift的XCode 7.2,我们使用的库是3.6.6版的XMPP框架。 我们可以进行单文本聊天,但不能存储聊天历史-我们如何维护聊天历史并检索它。如果您想维护聊天本地历史,可以使用coredata以正确的顺序保存所有传入和发送的消息。 要恢复聊天历史记录,请使用coredata中的XMPPUserName和To等参数。 要查看openfire服务器上的历史记录,您可以: 安装

我们使用Amazon Ubuntu服务器,Apache和PHP安装了Openfire 4.0.1版,应用程序配置是使用Swift的XCode 7.2,我们使用的库是3.6.6版的XMPP框架。
我们可以进行单文本聊天,但不能存储聊天历史-我们如何维护聊天历史并检索它。

如果您想维护聊天本地历史,可以使用coredata以正确的顺序保存所有传入和发送的消息。 要恢复聊天历史记录,请使用coredata中的XMPPUserName和To等参数。 要查看openfire服务器上的历史记录,您可以: 安装监控服务器插件 转到“存档”选项卡
选择他们的设置并启用存档一对一聊天“

如果您想维护聊天本地历史记录,可以使用coredata按正确顺序保存所有传入和发送的消息。 要恢复聊天历史记录,请使用coredata中的XMPPUserName和To等参数。 要查看openfire服务器上的历史记录,您可以: 安装监控服务器插件 转到“存档”选项卡 选择他们的设置并启用存档一对一聊天”

在项目中创建核心数据的XCMODEL架构文件 在该模型中添加实体。 这可能是你的情况

消息实体 联系实体 等等,你想存什么就存什么 对于数据库模型中的每个实体,现在可以在实体中添加属性,比如消息实体。属性可以创建为时间、消息文本等。 创建一个属性与属性相同的NSObject扩展类 现在您可以使用:核心数据操作方法,如保存NS托管对象等来保存或在数据库上执行其他操作

例如:使用全名属性在数据库中保存联系人

DBHandler*DBHandler=[DBHandler sharedInstance]

DB_CONTACT* existingContact = [self getContactByKey:@"userId" value:[userContact userId]];
if (existingContact) {
    return false;
}  

BOOL result = NO;
DB_触点*触点= [n实体描述 insertNewObjectForEntityForName:@DB\u联系人 inManagedObjectContext:dbHandler.managedObjectContext]

负责在数据库中保存的方法:

[n实体描述 insertNewObjectForEntityForName:@DB\u联系人 inManagedObjectContext:dbHandler.managedObjectContext]

希望这能给你一个想法。有关更多详细信息,请查看作为邮件示例应用程序

在项目中创建核心数据的XCMODEL架构文件 在该模型中添加实体。 这可能是你的情况

消息实体 联系实体 等等,你想存什么就存什么 对于数据库模型中的每个实体,现在可以在实体中添加属性,比如消息实体。属性可以创建为时间、消息文本等。 创建一个属性与属性相同的NSObject扩展类 现在您可以使用:核心数据操作方法,如保存NS托管对象等来保存或在数据库上执行其他操作

例如:使用全名属性在数据库中保存联系人

DBHandler*DBHandler=[DBHandler sharedInstance]

DB_CONTACT* existingContact = [self getContactByKey:@"userId" value:[userContact userId]];
if (existingContact) {
    return false;
}  

BOOL result = NO;
DB_触点*触点= [n实体描述 insertNewObjectForEntityForName:@DB\u联系人 inManagedObjectContext:dbHandler.managedObjectContext]

负责在数据库中保存的方法:

[n实体描述 insertNewObjectForEntityForName:@DB\u联系人 inManagedObjectContext:dbHandler.managedObjectContext]


希望这能给你一个想法。有关更多详细信息,请查看邮件示例应用。

重复重复谢谢,请您也看看这个,我尝试发送媒体但不工作,谢谢,请您也看看这个,我尝试发送媒体但不工作,
contact.fullName = userContact.fullName;
NSError *error = nil;

result = [dbHandler.managedObjectContext save:&error];

if (!result) {
    NSLog(@"DB ERROR :%@",error);
}

return result;