1

我是 XMPP 的新手。目前我正在使用openfire和xmpp开发一个聊天应用程序。当用户登录服务器时,服务器必须获取用户使用的网络浏览器的信息。

有什么方法吗?我正在考虑使用 disco#info 和 disco#item 来做到这一点,但不知道该怎么做......

谢谢你。

4

1 回答 1

0

在 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);
于 2012-04-09T18:46:27.297 回答