使用Smack API自动将用户添加到名单

时间:2013-02-26 10:54:43

标签: java client xmpp smack instant-messaging

我正在使用Openfire作为服务器为Intra Office Messaging System构建客户端应用程序。使用Roster类我可以使用以下命令找到好友(好友/联系人)列表:

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(局内消息系统),因此要求不同。无需添加联系人。所有用户都应该看到每个其他用户及其状态。有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:2)

这样做的一种方法是将您的openfire与AD集成。在单个公共组中添加所有用户,然后在客户端中导入该组。这样,用户将自动显示为该组的成员,并且该组的所有成员都可以使用他/她的在线状态。并确保无论何时添加新用户,它都将成为该组的成员。这样每个人都可以在用户列表中一次导入。

以下是有关相同内容的参考链接:Openfire Automatic Roster Population via Shared Groups,此处是integrate Openfire with LDAP的指南

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