【问题标题】:Saving XMPP Multi User chat messages through XMPP MessageArchiving in iOS在 iOS 中通过 XMPP MessageArchiving 保存 XMPP 多用户聊天消息
【发布时间】:2013-08-14 16:17:56
【问题描述】:

我正在使用 XMPP 在 iOS 中开发一个聊天应用程序。到目前为止,我已经成功实现并测试了单个用户聊天场景,即发送、接收、保存和检索消息。

现在他们面临的问题是,现在在处理多用户聊天场景时,他们收到它但无法使用 XMPP MessageArchiving 保存它们,因此也无法检索它们。

有谁经历过这个过程/问题?

提前谢谢你

【问题讨论】:

  • 嘿 Ahmed - 自 8 月以来,您对此有进一步了解吗?
  • 是的,我已经成功实现了多用户聊天场景..
  • 我必须自定义我的消息包。在其中添加地址标签,从“发件人”标签中删除我的 id 并用“multicast.severname”替换它。还有一些调整。跨度>
  • @AhmedZ。我已经成功测试了一对一聊天发送和接收消息,但没有使用 XMPP MessageArchiving 保存和检索这些消息,由于持久性协调器不可用而导致崩溃
  • @RohitPathak 你问的是一对一聊天吗?

标签: ios core-data xmpp xmppframework


【解决方案1】:

groupchat 类型的消息可以保存在XMPPRoom.xcdatamodel 中,您需要在 xmpp 设置中初始化 XMPPRoomCoreDataStorage,例如:

XMPPRoomCoreDataStorage *xmppRoomStorage = [[XMPPRoomCoreDataStorage alloc] init];

所以,这个类实现了一个方法,将所有消息 ROOM 插入正确的数据模型中(在我们的例子中,所有传出和传入的消息都保存在 XMPPRoom.xcdatamodel 中)。

- (void)insertMessage:(XMPPMessage *)message outgoing:(BOOL)isOutgoing forRoom:(XMPPRoom *)room stream:(XMPPStream *)xmppStream

更多 XEP-0045 信息http://xmpp.org/extensions/xep-0045.html

【讨论】:

    【解决方案2】:

    您可以使用此代码保存房间消息

    NSString *xmppRoomJIDString = [NSString stringWithFormat:@"%@@conference.your_host", @"your_room_name"];
    
    XMPPJID *roomJID = [XMPPJID jidWithString:xmppRoomJIDString];
    
    XMPPRoomCoreDataStorage *roomCoreDataStorage = [XMPPRoomCoreDataStorage sharedInstance];
    
    XMPPRoom *xmppRoom = [[XMPPRoom alloc]
                initWithRoomStorage:roomCoreDataStorage
                jid:roomJID
                dispatchQueue:dispatch_get_main_queue()];
    
    [xmppRoom activate:xmppStream];
    [xmppRoom addDelegate:self delegateQueue:dispatch_get_main_queue()];
    
    [xmppRoom joinRoomUsingNickname:@"your_nicke_name" history:nil];
    [xmppRoom fetchConfigurationForm];
    

    【讨论】:

      猜你喜欢
      • 2013-08-28
      • 2012-01-14
      • 1970-01-01
      • 1970-01-01
      • 2014-05-31
      • 2013-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多