我是 XMPP 的新手。目前我正在使用openfire和xmpp开发一个聊天应用程序。当用户登录服务器时,服务器必须获取用户使用的网络浏览器的信息。
有什么方法吗?我正在考虑使用 disco#info 和 disco#item 来做到这一点,但不知道该怎么做......
谢谢你。
在 XMPP 中有多种方式来传达软件和版本。决定您要使用哪种方法的一种方法是问自己您想要这些信息的目的。
如果您使用软件版本来检测应用程序中的功能,您需要查看XEP-0115: Entity Capabilities,它确实使用了disco#info 和 disco#features。
如果您真的只希望软件的名称和版本作为报告和显示目的的字符串,您可以使用XEP-0092: Software Version。在我编写的使用Strophe.js的应用程序中,我将以下代码与BrowserDetect一起使用:
function version_handler(stanza)
{
conn.send($iq({to: stanza.getAttribute("from"), type: "result", id: stanza.getAttribute("id") })
.c('query', { xmlns: "jabber:iq:version" })
.c('name').t(BrowserDetect.browser).up()
.c('version').t(BrowserDetect.version.toString()).up()
.c('os').t(BrowserDetect.OS).tree());
return true;
}
和:
conn.addHandler(version_handler, "jabber:iq:version", "iq", "get", null, null);