Tag: 多用户

如何处理MUC聊天消息 – 复制消息

我使用XMPP框架实现了一对一的聊天。它在一对一的聊天中有广泛的支持。 消息归档和提取非常简单。 但是我看到,处理群聊消息保存和显示非常困难。 sorting和谓词失败。 显示重复的消息。 这是我join我的房间之前,我已经保存的消息) XMPPRoomCoreDataStorage *coreDataRoomStorage=[self appDelegate].xmppRoomCoreDataStorage; XMPPRoom *room=[[XMPPRoom alloc]initWithRoomStorage:coreDataRoomStorage jid:user.bareJid]; [room activate:[self appDelegate].xmppStream]; [room addDelegate:[self appDelegate] delegateQueue:dispatch_get_main_queue()]; [room joinRoomUsingNickname:user.user_name history:nil]; 我看到,有几个冗余的消息保存。 一条消息被保存3-4次。 我可能会做错什么。 有些身体会有帮助! 这是我在房间里发送信息的代码 – (NSFetchedResultsController *)fetchedResultsController{ if (fetchedResultsController == nil) { NSManagedObjectContext *moc = [[self appDelegate] managedObjectContext_message]; NSEntityDescription *entity = [NSEntityDescription entityForName:@"XMPPMessageArchiving_Message_CoreDataObject" inManagedObjectContext:moc]; NSPredicate *predicate=[NSPredicate predicateWithFormat:@"bareJidStr=%@",_thisRoom.roomJID.bare]; NSSortDescriptor *sd1 = [[NSSortDescriptor […]

didReceiveInvitation()不在XMPPFramework和Swift 2中调用

我正在创build像Whatsapp聊天应用程序。 我已经成功编写了文字聊天,图像,audio,video传输的function。 现在我正在创build多用户聊天。 经过长时间的研发,我正在问这个问题。 请告诉我在我的代码中我做错了什么。 我遵循所有这些教程,但不是运气 https://github.com/robbiehanson/XMPPFramework/issues/640 MUC如何与XMPPFramework 接受聊天室邀请 好的,下面是我的代码 1.成功设置STREAM后,我在GoOnline方法中设置了邀请的XMPPMUC委托 private func goOnline() { let presence = XMPPPresence() let domain = xmppStream.myJID.domain if domain == "gmail.com" || domain == "gtalk.com" || domain == "talk.google.com" // || domain == "chat.alqatech.com" { let priority = DDXMLElement.elementWithName("priority", stringValue: "24") as! DDXMLElement presence.addChild(priority) } xmppMUC = XMPPMUC(dispatchQueue: dispatch_get_main_queue()) […]

XMPPFramework – 如何创build一个MultiUserChat房间?

我怎样才能实现在iPhone使用XMPPFramework.I组休闲的代码,但房间没有创build。如何知道房间是否创build.XMPPRoomDelegate没有调用。当Stream断开,handleDidLeaveRoom方法调用。任何人都可以帮助我。提前致谢 #define XMPP_HOSTNAME_2 @"chat.someservername.com" #define XMPP_JID @"venkat@chat.someservername.com" #define XMPP_PASSWORD @"venkat" #define ROOM_JID @"venkat_muc@conference.chat.someservername.com/iMac" – (void)mucSetupStream { xmppStream = [[XMPPStream alloc] init]; xmppStream.hostName = XMPP_HOSTNAME_2; xmppStream.myJID = [XMPPJID jidWithString:XMPP_JID]; [xmppStream addDelegate:self delegateQueue:dispatch_get_main_queue()]; // Configure xmppRoom XMPPJID *roomJID = [XMPPJID jidWithString:ROOM_JID]; xmppRoomStorage=[XMPPRoomCoreDataStorage sharedInstance]; xmppRoom = [[XMPPRoom alloc] initWithRoomStorage:self jid:roomJID dispatchQueue:dispatch_get_current_queue()]; [xmppRoom activate:xmppStream]; [xmppRoom addDelegate:self delegateQueue:dispatch_get_main_queue()]; // Start […]