2015-11-05 1 views
0

En référence à cela, je suis en train de mettre en œuvre une configuration de discussion de groupe.IOS XMPPFramework - Mise en œuvre de MUC

XMPPFramework - Implement Group Chat (MUC)

Cependant en tant que participant et non modérateur Je suis incapable d'obtenir la liste des membres. J'ai essayé de lire plusieurs réponses de pile demandant d'implémenter la 'muC# roomconfig_getmemberlist' cependant le délégué fetchconfiguration de XMPPRoom ne donne pas cette valeur de champ dans le rappel.

Quelqu'un peut-il donner des conseils sur la manière exacte d'implémenter cela? Comment puis-je récupérer la liste des membres.

Répondre

0

Ceci est la configuration par défaut activée dans le serveur, donc pas besoin de définir, nous devons personnaliser le serveur pour que les membres soient hors ligne et laissent la place. donc pour atteindre l'exigence comme d'autres membres de l'application de chat à afficher.

1

Créer chambre XMPP en utilisant

/** 
This fuction is used to setup room with roomId 
*/ 
-(void)setUpRoom:(NSString *)ChatRoomJID 
{ 
    if (!ChatRoomJID) 
    { 
     return; 
    } 
    // Configure xmppRoom 
    XMPPRoomMemoryStorage *roomMemoryStorage = [[XMPPRoomMemoryStorage alloc] init]; 

    XMPPJID *roomJID = [XMPPJID jidWithString:ChatRoomJID]; 

    xmppRoom = [[XMPPRoom alloc] initWithRoomStorage:roomMemoryStorage jid:roomJID dispatchQueue:dispatch_get_main_queue()]; 

    [xmppRoom activate:xmppStream]; 
    [xmppRoom addDelegate:self delegateQueue:dispatch_get_main_queue()]; 

    NSXMLElement *history = [NSXMLElement elementWithName:@"history"]; 
    [history addAttributeWithName:@" maxchars" stringValue:@"0"]; 
    [xmppRoom joinRoomUsingNickname:xmppStream.myJID.user 
          history:history 
          password:nil]; 


    [self performSelector:@selector(ConfigureNewRoom:) withObject:nil afterDelay:4]; 

} 

/** 
This fuction is used configure new 
*/ 
- (void)ConfigureNewRoom:(id)sender 
{ 
    [xmppRoom configureRoomUsingOptions:nil]; 
    [xmppRoom fetchConfigurationForm]; 
    [xmppRoom fetchBanList]; 
    [xmppRoom fetchMembersList]; 
    [xmppRoom fetchModeratorsList]; 

} 

Après la création des méthodes d'utilisation de la chambre des délégués de chambre XMPP

- (void)xmppRoom:(XMPPRoom *)sender occupantDidJoin:(XMPPJID *)occupantJID withPresence:(XMPPPresence *)presence 


- (void)xmppRoom:(XMPPRoom *)sender occupantDidLeave:(XMPPJID *)occupantJID withPresence:(XMPPPresence *)presence 

en utilisant ces deux méthodes de délégués, vous pouvez facilement maintenir la liste des utilisateurs jointe à la CUM Chambre

+0

Merci Samanvith, je peux obtenir ces délégués et donc pas besoin de définir cela dans la configuration des paramètres sur le serveur comme «muC# roomconfig_getmemberlist» puisque c'est par défaut ON dans le serveur. Merci néanmoins pour l'info. –