Java 使用Smack API自动将用户添加到花名册

Java 使用Smack API自动将用户添加到花名册,java,client,xmpp,smack,instant-messaging,Java,Client,Xmpp,Smack,Instant Messaging,我正在使用Openfire作为服务器为办公室内消息传递系统构建一个客户端应用程序。使用花名册类,我可以通过以下方式找到好友(朋友/联系人)列表: 花名册rs=con.get花名册(); 集合列表=rs.getEntries(); System.out.println(“\n\n”+list.size()+“buddy:”); 用于(名册:列表){ System.out.println(r.getName()); } 但由于这是一个IOMS(办公室内部消息传递系统),因此要求不同。不需要添加联系

我正在使用Openfire作为服务器为办公室内消息传递系统构建一个客户端应用程序。使用花名册类,我可以通过以下方式找到好友(朋友/联系人)列表:

花名册rs=con.get花名册();
集合列表=rs.getEntries();
System.out.println(“\n\n”+list.size()+“buddy:”);
用于(名册:列表){
System.out.println(r.getName());
}

但由于这是一个IOMS(办公室内部消息传递系统),因此要求不同。不需要添加联系人。所有用户都应该看到其他每个用户及其状态。有没有办法做到这一点?

一种方法是将openfire与AD集成。将所有用户添加到一个通用组中,然后将该组导入客户端。这样,用户将自动显示为该组的成员,并且该组的所有成员都可以使用其联机状态。并确保无论何时添加新用户,它都会成为此组的成员。这样,用户列表中的每个人都会立即导入

这里有一个关于相同的参考链接:这里是


另一种方法是更新Openfire代码,并将注册过程更改为添加代码,以便自动将所有用户添加到新注册用户的好友列表中。您也可以在客户端执行相同的代码。但这不是一条好的道路,因为随着系统中用户数量的增加,这将导致问题。

我正在考虑另一种选择。是否有可能向所有注册的用户广播消息,而不管它们是否在用户的好友列表中。@斯大林考虑使用广播插件。我决定这样做:有一个“注册插件”。openfire服务器插件,我们可以使用它设置默认组,每个用户注册后都必须添加到该组,这就解决了我的问题!请尝试为您的问题找到更好/更具描述性的标题。
Roster rs= con.getRoster();
Collection<RosterEntry> list=rs.getEntries();
System.out.println("\n\n" + list.size() + " buddy(ies):");
for (RosterEntry r : list) {
    System.out.println(r.getName());
}