Пользователи не принимают приглашения в XMPPRoom

В моем приложении, если я отправляю приглашение другому пользователю, тогда модератор и все пользователи, получившие запрос, присоединятся к комнате, но если другой пользователь отправит запрос всем, то < strong> модератор предыдущей комнаты не получает приглашения.

Например:
пользователь 1 отправит приглашение в комнату 1 пользователю 2 и пользователю 3, затем < strong> все три находятся в комнате 1.
если Пользователь 2 отправит приглашение для комнаты 2 в Пользователь 1 и Пользователь 3, тогда Пользователь 1 будет не получает приглашения.
А также, если Пользователь 3 отправит приглашение для комнаты 3, затем только пользователь 3 будет присутствовать в комнате, а все другие два не получают приглашения.

В своем приложении я приглашаю другого пользователя с этим запросом

XMPPRoomMemoryStorage * _roomMemory = [[XMPPRoomMemoryStorage alloc]init];
NSString* roomID = [NSString stringWithFormat:@"[email protected] id"];
XMPPJID * roomJID = [XMPPJID jidWithString:roomID];
xmppRoom = [[XMPPRoom alloc] initWithRoomStorage:_roomMemory jid:roomJID dispatchQueue:dispatch_get_main_queue()];
[xmppRoom addDelegate:_roomMemory delegateQueue:dispatch_get_main_queue()];
[xmppRoom activate:xmppStream];
[xmppRoom joinRoomUsingNickname:[NSString stringWithFormat:@"%@",strCureentUserName] history:nil];

//.........inviting the Friend.......
for (int i=0; i<[arrUserName count];i++) {
    [xmppRoom inviteUser:[XMPPJID jidWithString:[NSString stringWithFormat:@"Invite user's ID"]] withMessage:@"Come Join me in this room"];
}

[xmppRoom fetchConfigurationForm];
[xmppRoom configureRoomUsingOptions:nil];

и другие пользователи получают приглашение сюда

- (void)xmppStream:(XMPPStream *)sender didReceiveMessage:(XMPPMessage *)message
{
 NSXMLElement * x = [message elementForName:@"x" xmlns:XMPPMUCUserNamespace];
NSXMLElement * invite  = [x elementForName:@"invite"];
NSXMLElement * decline = [x elementForName:@"decline"];
NSXMLElement * directInvite = [message elementForName:@"x" xmlns:@"jabber:x:conference"];
NSString *msg1 = [[message elementForName:@"body"]stringValue];
NSString *from1 = [[message attributeForName:@"from"]stringValue];
if (invite || directInvite)
{
    NSLog(@"come in invite method of if condition");

    [self createAndEnterRoom:from1 Message:msg1];
    return;
}

Как получить приглашение от всех пользователей в любое время.
Любая помощь приветствуется ...
Заранее спасибо.


person Sam    schedule 20.01.2014    source источник


Ответы (2)


Я на самом деле работаю над этим, я использую делегат XMPPMUC (MUC означает MultiUserChat)

У делегата есть такой метод:

-(void)xmppMUC:(XMPPMUC *)sender roomJID:(XMPPJID *)roomJID didReceiveInvitation:(XMPPMessage *)message
{
}

Я еще этого не делал, но думаю, вы могли бы поискать по этому ...

person GUEST_hehe    schedule 06.03.2014
comment
Я сделал этого человека ... из приведенного выше кода вы просто вставляете весь код приглашения в цикл for, поэтому каждый раз, когда пользователь присоединяется к комнате и отправляет приглашение каждому другу, который находится в массиве. Может быть, это неправильно, но мне нужно сделать это за меньшее время, поэтому я сделал это с такой логикой. если ты что-нибудь найдешь, пожалуйста, оставь это здесь для других ... и спасибо за время, брат ... - person Sam; 07.03.2014

Я думаю, вы допустили ошибку, приглашая пользователей. Вы просто используете массив пользователей для приглашения других людей, это нормально, но приглашение должно быть отправлено, когда этот метод делегата XMPPRooms вызывает

- (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:@"arpan"] withMessage:@"Greetings!"];
}

Просто используйте XMPPRoomdelegates надлежащим образом, чтобы пригласить пользователя. См. Ссылку на эту ссылку для делегатов .. XMPPFramework - как создать комнату MUC и пригласить пользователей?

person Arpan Dixit    schedule 05.11.2014