Ответ 1
После изучения различных решений я решил скомпилировать и поделиться своей реализацией здесь:
-
Создать комнату XMPP:
XMPPRoomMemoryStorage *roomStorage = [[XMPPRoomMemoryStorage alloc] init]; /** * Remember to add 'conference' in your JID like this: * e.g. [email protected] */ XMPPJID *roomJID = [XMPPJID jidWithString:@"[email protected]"]; XMPPRoom *xmppRoom = [[XMPPRoom alloc] initWithRoomStorage:roomStorage jid:roomJID dispatchQueue:dispatch_get_main_queue()]; [xmppRoom activate:[self appDelegate].xmppStream]; [xmppRoom addDelegate:self delegateQueue:dispatch_get_main_queue()]; [xmppRoom joinRoomUsingNickname:[self appDelegate].xmppStream.myJID.user history:nil password:nil];
-
Проверьте, что номер успешно создан в этом делетете:
- (void)xmppRoomDidCreate:(XMPPRoom *)sender
-
Проверьте, присоединились ли вы к номеру в этом делетете:
- (void)xmppRoomDidJoin:(XMPPRoom *)sender
-
После создания комнаты введите конфигурационную форму помещения:
- (void)xmppRoomDidJoin:(XMPPRoom *)sender { [sender fetchConfigurationForm]; }
-
Настройте свою комнату
/** * Necessary to prevent this message: * "This room is locked from entry until configuration is confirmed." */ - (void)xmppRoom:(XMPPRoom *)sender didFetchConfigurationForm:(NSXMLElement *)configForm { NSXMLElement *newConfig = [configForm copy]; NSArray *fields = [newConfig elementsForName:@"field"]; for (NSXMLElement *field in fields) { NSString *var = [field attributeStringValueForName:@"var"]; // Make Room Persistent if ([var isEqualToString:@"muc#roomconfig_persistentroom"]) { [field removeChildAtIndex:0]; [field addChild:[NSXMLElement elementWithName:@"value" stringValue:@"1"]]; } } [sender configureRoomUsingOptions:newConfig]; }
Ссылки: XEP-0045: Многопользовательский чат, Реализовать групповой чат
-
Пригласите пользователей
- (void)xmppRoomDidJoin:(XMPPRoom *)sender { /** * You can read from an array containing participants in a for-loop * and send multiple invites in the same way here */ [sender inviteUser:[XMPPJID jidWithString:@"keithoys"] withMessage:@"Greetings!"]; }
Там вы создали многопользовательскую/групповую чат-панель XMPP и пригласили пользователя.:)