java - 使用 Smack API 自动将用户添加到名册中

标签 java client xmpp smack instant-messaging

我正在使用 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/

相关文章:

java - 将分割数组分配给字符串

java - 我想更改单击的任何按钮的大小

java - 即使使用取消方法也无法取消 AsyncTask 中的 doInBackground 进程

sockets - HTML 5 网络套接字和 XMPP 服务器对话框

java.lang.NoClassDefFoundError : Failed resolution of: Ljavax/naming/directory/InitialDirContext; 错误

调用 vcard.load(conn) 时 Android asmack vcard classcastException

java - 从Optional<CompletableFuture<T>>到CompletableFuture<Optional<T>>

php - 发送文件给客户端

c# - 需要快速的.NET ftp客户端

java - AWS java 网络服务器