2016-12-14 3 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(); 
} 

Ошибка:Смак Openfire Android Невозможно отправить сообщение группе Ошибка/номер 403 запретной

код ошибки = типа "403" = "Auth" запрещено Xmlns = "урна: IETF: Титулы: xml: ns: xmpp-stanzas "/> **

+0

это идентификатор комнаты .. 'getMultiUserChat (" [email protected] ");'? –

+0

да его номер id. получение информации о пользователе, но неспособное отправить сообщение после присоединения к группе. –

+0

@DimaSan да это –

ответ

0

Существует несколько ошибок, логических и процедурных.

С этим вызовом:

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

у вас есть в MUC объекта вашей к конференции. Итак, вам нужно проверить, присоединились ли вы к этому групповому сообщению, или двойное соединение приведет к возникновению исключения.

так

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

больше, когда вы зарегистрируетесь, вы должны предоставить уникальный ник на пользователя, чтобы присоединиться, или вы будете получать исключение со вторым пользователем. В качестве псевдонима укажите одно и то же имя groupchat, на 99% - логическую ошибку.

Наконец, чтобы отправить сообщение, просто отправьте его через объект MUC или вы рискуете, как в этом случае, пропустить некоторую информацию.

Так просто отправить его с

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

И последнее, но не менее важное: конечно multiuserchat должен существовать или inititilized, прежде чем должным образом, это является обязательным условием, чтобы сделать все это. В качестве первого шага просто создайте его в Openfire с помощью http-admin-panel (сделайте его упорным)

+1

Спасибо большое :) –