Java XMPP Smack API RosterListener&x2B;数据库更改

Java XMPP Smack API RosterListener&x2B;数据库更改,java,xmpp,listener,smack,Java,Xmpp,Listener,Smack,我正在使用Smack API用Java编写一个XMPP客户机 我为每个用户注册了一个花名册侦听器,Smack API调用 public void entriesAdded(Collection arg0) {} 。。。每次它都会注意到增加了名册 有人知道如果数据库发生更改,而不是通过Smack API createEntry()方法,是否会禁用此侦听器吗 基本上,我想将XMPP客户端绑定到一个网站。当您将某人添加到网站好友列表时,我希望网站通知客户。我不希望设置套接字或使用PHP登录XMPP服

我正在使用Smack API用Java编写一个XMPP客户机

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

public void entriesAdded(Collection arg0) {}
。。。每次它都会注意到增加了名册

有人知道如果数据库发生更改,而不是通过Smack API createEntry()方法,是否会禁用此侦听器吗

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


这会起作用吗?或者是否有其他方法来处理这一问题,而无需客户端不断轮询数据库以进行更改?

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

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

至于轮询数据库的客户机,如果XMPP服务器和您的Web服务器正在使用数据库,那么让客户机直接访问数据库听起来不是个好主意