【问题标题】:Getting XMPP client chat history between two users获取两个用户之间的 XMPP 客户端聊天记录
【发布时间】:2015-08-14 06:12:10
【问题描述】:

我用 eJabbered 创建了一个 XMPP Swift Messenger,但它不保存历史记录。

我搜索了很多,只能在 Stack 中找到用 ObjC 编写的答案。

例如:

- (void)loadChatHistoryWithUserName:(NSString *)userName {
    NSString *userJid = [NSString stringWithFormat:@"%@@%@",userName,self.hostName];
    NSManagedObjectContext *moc = [_xmppMsgStorage mainThreadManagedObjectContext];
    NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"XMPPMessageArchiving_Message_CoreDataObject"
                                                     inManagedObjectContext:moc];
    NSFetchRequest *request = [[NSFetchRequest alloc]init];
[request setEntity:entityDescription];
    NSError *error;
    NSString *predicateFrmt = @"bareJidStr == %@";
    NSPredicate *predicate = [NSPredicate predicateWithFormat:predicateFrmt, userJid];
request.predicate = predicate;
    NSArray *messages = [moc executeFetchRequest:request error:&error];
}

但我使用 XMPP Swift 框架和内部的 XMPP ObjC 框架。看看这个 Git:GitHub

如何在 Swift 中使用这些 sn-p 来获取聊天记录?

【问题讨论】:

    标签: ios objective-c swift xmpp messenger


    【解决方案1】:

    如果您没有在本地保存历史记录(即某种缓存),那么您可能应该查看一个记录聊天记录并允许您在连接和登录(并进入相关房间)时检索它们的服务器插件等),如果我没记错的话,ejabbered 没有内置的(或者付费版本有),根据我的经验,Prosody IM server 有那个插件,而且很容易设置。

    之后,确保您的客户端检索历史记录(使用侦听器等)

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2012-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-04
      • 2018-08-11
      • 2016-06-26
      • 2015-08-31
      相关资源
      最近更新 更多