我正在使用 Openfire 作为服务器为办公室内部消息系统构建客户端应用程序。使用 Roster 类,我可以使用以下方法找到好友( friend /联系人)列表:
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());
}
但由于这是 IOMS(办公室内消息系统),因此要求有所不同。无需添加联系人。所有用户都应该看到其他所有用户及其状态。有没有办法实现这个目标?
最佳答案
实现此目的的一种方法是将 openfire 与 AD 集成。将所有用户添加到单个公共(public)组中,然后将该组导入客户端中。这样,用户将自动显示为该组的成员,并且该组的所有成员都可以看到他/她的在线状态。并确保每当添加新用户时,它都会成为该组的成员。这样,每个人都会立即导入到用户列表中。
以下是有关相同内容的引用链接:Openfire Automatic Roster Population via Shared Groups这是 integrate Openfire with LDAP 的指南
另一种方法是更新 Openfire 代码并更改注册流程,以添加自动将所有用户添加到新注册用户的好友列表中的代码。您也可以在客户端执行相同的代码。但这不是一条好走的路,因为随着系统用户数量的增长,它会带来问题。
关于java - 使用 Smack API 自动将用户添加到名册中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15087263/