asmack发送消息到rouster组(asmack send message to a roust

2019-10-21 10:56发布

我想通过使用asmack发送消息给名册集团(喜欢的朋友组)。(我不想使用多用户聊天创建会议室)

Asmach有这样的:

 Message msg=new Message(java.lang.String to, Message.Type type)

当希望在一台用户我使用:消息(“a@b.com”,Message.Type.chat)

但在群聊中,我想我必须使用消息(java.lang.String中来,Message.Type.groupchat),但我不知道java.lang.String中来应该是什么?

Answer 1:

XMPP不specifiy的机制将消息发送到名册组。 但是你可以很容易地实现自己找。 只是收集所有的JID的,最终全部派驻,名册组和发送消息给他们中的每一个(最好用拍击的MultipleRecpientManager )。



Answer 2:

我设法在以下方式发送消息给所有名册组成员。 你可以试试。


该组中的发送消息给多个用户的方法

/**
 * Sends Group message
 *
 * @param message
 * @param groupName
 * @throws XMPPException
 * @throws SmackException.NotConnectedException
 */
public void sendGroupMessage(String groupName, String message) throws SmackException.NotConnectedException, XMPPException {
    Roster roster = connection.getRoster();
    RosterGroup rosterGroup = roster.getGroup(groupName);
    Collection<RosterEntry> entries = rosterGroup.getEntries();
    for (RosterEntry entry : entries) {
       String user = entry.getName();
       System.out.println(String.format("Sending message " + message + " to user " + user));
        Chat chat = chatManager.createChat(user, messageListener);
        chat.sendMessage(message);
    }
}

调用方法

classNameOfYourMethod.sendGroupMessage(groupName, groupMessage);

如果需要分类问评论。



文章来源: asmack send message to a rouster group
标签: xmpp smack