Я работаю в чате, где мне нужно добавить групповой чат с использованием XMPP Framework
. Я могу настроить peer-to-peer
чате. Но когда дело доходит до группового чата, я не могу создать chat room
. Я знаю, этот вопрос был задан многим раз раньше, но я не мог найти решения из этих ответов. Вот мой код для создания и настройки чата.Создать чат с XMPPFramework openfire
- (void)createChatRoom:(NSString *) newRoomName
{
NSString *jid=[NSString stringWithFormat:@"%@@%@",newRoomName,kGroupChatDomain];
XMPPRoomMemoryStorage * _roomMemory = [[XMPPRoomMemoryStorage alloc]init];
XMPPJID * roomJID = [XMPPJID jidWithString:jid];
_xmppRoom = [[XMPPRoom alloc] initWithRoomStorage:_roomMemory
jid:roomJID
dispatchQueue:dispatch_get_main_queue()];
NSString *nickName=[NSString stringWithFormat:@"%@chatRoom",newRoomName];
[_xmppRoom joinRoomUsingNickname:nickName
history:nil
password:nil];
[_xmppRoom activate:[AppDel xmppStream]];
[_xmppRoom addDelegate:self delegateQueue:dispatch_get_main_queue()];
[_xmppRoom fetchConfigurationForm];
}
- (void)xmppRoomDidCreate:(XMPPRoom *)sender{
NSLog(@"didCreateChat Room method called");
}
- (void)xmppRoomDidJoin:(XMPPRoom *)sender{
NSLog(@"xmppRoomDidJoin method called ");
}
- (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"];
if ([var isEqualToString:@"muc#roomconfig_persistentroom"]) {
[field removeChildAtIndex:0];
[field addChild:[NSXMLElement elementWithName:@"value" stringValue:@"1"]];
}
}
[sender configureRoomUsingOptions:newConfig];
}
Выше приведен код создания и настройки чата. До , вызывающ этот код, я соединяю XMPP
в viewDidLoad
метод. Но Я не могу создать чат. Код не звонит XMPPRoom
Delegate
методы (xmppRoomDidCreate, xmppRoomDidJoin)
Я не знаю , где я ошибаюсь, пожалуйста, исправьте меня, если в моем код ошибки. Я даже не мог найти ошибки в журналах openfire. Пожалуйста, помогите мне решить проблему. Любая помощь будет оценена.
если вы сталкиваетесь с любой проблемой, дайте мне знать – suthar
Спасибо за ответ, @suthar, На самом деле я могу создать чат комнату и добавление пользователей в качестве чата. Но я застрял в интеграции coreData. Как сохранить и получить список комнат чата и сообщения из coreData, предоставленные XMPPFramework? –
В настоящее время я использую sqlite для этого, вы также можете использовать sqlite для сохранения чата – suthar