2016-12-14 2 views
1
MultiUserChatManager manager = MultiUserChatManager.getInstanceFor(xmppconnection.getConnection()); 
try { 
    MultiUserChat muc = manager.getMultiUserChat("[email protected]"); 

    muc.join("[email protected]"); 

    Message msg = new Message("[email protected]", Message.Type.groupchat); 
    msg.setBody("Hi Testing..Group chat.."); 
    muc.sendMessage(msg); 
    // muc.join("test", "1234"); 
} catch (SmackException.NotConnectedException e) { 
    e.printStackTrace(); 
} catch (SmackException e) { 
    e.printStackTrace(); 
} catch (XMPPException.XMPPErrorException e) { 
    e.printStackTrace(); 
} catch (XMPPException e) { 
    e.printStackTrace(); 
} 

erreur est:Smack Openfire Android Impossible d'envoyer un message au groupe/ABIMEE 403 interdit

erreur code = urne "403" type = "auth" interdit xmlns = ": ietf: params: xml: ns: xmpp-stanzas "/> **

+0

est-ce l'ID de pièce .. 'getMultiUserChat (" [email protected] ");'? –

+0

oui son ID de chambre. Obtenir des informations sur l'utilisateur mais incapable d'envoyer un message après avoir rejoint le groupe. –

+0

@DimaSan oui c'est –

Répondre

0

Il existe plusieurs erreurs, logiques et procédurales.

Avec cette invocation:

MultiUserChat muc = manager.getMultiUserChat("[email protected]"); 

que vous avez dans objet muc votre GroupChat. Vous devez donc vérifier si vous avez déjà rejoint ce groupchat ou si une double jointure déclenchera une exception.

si

if (!muc.isJoined()) 
muc.join("My nickname"); 

plus, lorsque vous rejoignez, vous devez fournir un surnom unique par l'utilisateur à se joindre, ou vous obtiendrez une exception avec le deuxième utilisateur. Définir comme surnom le même nom de la discussion de groupe c'est 99% une erreur logique.

Enfin, pour envoyer un message, il suffit de l'envoyer via l'objet MUC ou vous risquez, comme dans ce cas, de manquer certaines informations.

Il suffit donc de l'envoyer avec

muc.send("Hi Testing..Group chat.."); 

Last but not least: bien sûr multiuserchat doit exister ou inititilized avant correctement, il est une condition sine qua non pour faire tout cela. Comme première étape, il suffit de le créer dans Openfire avec http-admin-panel (le rendre persistant)

+1

Merci beaucoup :) –