[英]XMPP Smack API RosterListener + Database Change
我正在使用Smack API用Java编写XMPP客户端。
我为每个用户注册了一个名册侦听器,并且Smack API调用了...
public void entriesAdded(Collection arg0) {}
...每次发现名册增加。
是否有人知道如果数据库更改但不是通过Smack API createEntry()方法更改此侦听器是否会关闭?
基本上,我想将XMPP客户端绑定到网站。 当您将某人添加到网站的朋友列表时,我希望网站通知客户端。 我希望不设置套接字或使用PHP登录XMPP服务器,而是希望修改数据库即可。
这样做是可行的还是有另一种方法来解决此问题,而无需客户端不断轮询数据库中的更改?
更改数据库与Smack直接无关,因为它是一个客户端库。 它没有数据库。 该数据库将由服务器使用和访问,并且根据服务器的不同,可能存在一些功能,这些功能将允许服务器在更改数据库后发布消息。 我不知道是否有任何xmpp服务器实际上具有此功能。
您应该检查所用服务器的功能,并可能在服务器本身中使用扩展名来添加名册条目。 直接更改数据库似乎并不可行,因为您很可能会使XMPP服务器和数据库不同步。
对于客户端轮询数据库,如果XMPP服务器(甚至可能是Web服务器)正在使用数据库,则客户端可以直接访问数据库似乎不是一个好主意。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.