1

我正在使用 Smack API 在 Java 中编写 XMPP 客户端。

我为每个用户注册了一个名册监听器,Smack API 调用......

public void entriesAdded(Collection arg0) {}

...每次它注意到一个花名册添加。

有谁知道如果数据库更改而不是通过 Smack API createEntry() 方法,是否会关闭此侦听器?

基本上,我想将 XMPP 客户端绑定到一个网站。当您将某人添加到网站好友列表时,我希望网站通知客户。与其设置套接字或使用 PHP 登录 XMPP 服务器,我希望只修改数据库就可以工作。

在客户端不断轮询数据库以进行更改的情况下,这是否可行,或者是否有其他方法可以处理此问题?

4

1 回答 1

0

更改数据库与 Smack 没有直接关系,因为它是一个客户端库。它没有数据库。数据库将由服务器使用和访问,并且根据服务器的不同,可能存在允许服务器在数据库更改时发布消息的功能。我不知道是否有任何 xmpp 服务器实际上具有此功能。

您应该检查您正在使用的服务器的功能,并可能使用服务器本身的扩展来添加名册条目。直接更改数据库听起来并不像要走的路,因为您很可能会让您的 XMPP 服务器和数据库不同步。

至于轮询数据库的客户端,如果 XMPP 服务器和您的网络服务器正在使用它,那么客户端能够直接访问数据库听起来不是一个好主意。

于 2009-05-01T15:11:22.747 回答