我想通过使用asmack向名册组(如朋友组)发送消息。(我不想使用多用户聊天创建房间)
Asmach有这个:
Message msg=new Message(java.lang.String to, Message.Type type)
当我想要使用的单个用户时:消息(“a@b.com”,Message.Type.chat)
但是在群聊中我想我必须使用Message(java.lang.String to,Message.Type.groupchat)但我不知道 java.lang.String to 应该是什么?
答案 0 :(得分:1)
XMPP没有规定将消息发送到名册组的机制。但您可以轻松地自行实现。只收集名册组中的所有JID,并最终收集所有名片,并将信息发送给他们中的每一个(最好使用Smack的MultipleRecpientManager)。
答案 1 :(得分:1)
我设法以下列方式向所有名册组成员发送消息。你可以尝试一下。
向群组中的多用户发送消息的方法
/**
* 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);
如果您需要分类,请在评论中提问。