【问题标题】:OpenFire Xmpp Group ChatOpenFire Xmpp 群聊
【发布时间】:2017-07-13 23:44:31
【问题描述】:

我已经使用聊天管理器进行了一对一的聊天,但是如何在 smack 4.1.9 版中进行群聊。

MultiUserChatManager 在 smack 4.1.9 版本中不公开,如何使用 MultiUserChatManager 进行群聊。

【问题讨论】:

标签: android xmpp chat openfire groupchat


【解决方案1】:

4.1.9版本不行,你可以试试这个:

public MultiUserChat mMultiUserChat;
private MultiUserChatManager mMultiUserChatManager;

mMultiUserChatManager = MultiUserChatManager.getInstanceFor(mAbstractXMPPConnection);
mMultiUserChatManager.addInvitationListener(this);

mMultiUserChat = mMultiUserChatManager.getMultiUserChat(room);
mMultiUserChat.addMessageListener(this);

try {
    mMultiUserChat.join(yournickname);

  //  mMultiUserChat.sendConfigurationForm(new Form(DataForm.Type.submit));

} catch (SmackException.NoResponseException e) {
    e.printStackTrace();
} catch (XMPPException.XMPPErrorException e) {
    e.printStackTrace();
} catch (SmackException.NotConnectedException e) {
    e.printStackTrace();
}

对于发送消息:

 Message msg = new Message(room, Message.Type.groupchat);
 msg.setBody(message);
 mMultiUserChat.sendMessage(msg);

【讨论】:

  • 关于多用户聊天的协议规范没有改变。 xmpp.org/extensions/xep-0045.html 所以你的代码只能在非常单一的情况下工作(加入一个已经存在的没有密码的 MUC)。此外,MultiUserChat 对象允许只发送带有字符串正文的消息,而无需像您一样配置新消息
猜你喜欢
  • 2013-09-24
  • 2019-09-23
  • 2016-07-19
  • 2016-02-29
  • 2016-06-26
  • 2015-06-09
  • 1970-01-01
  • 2012-05-30
相关资源
最近更新 更多