来自资源的 Facebook XMPP IM 名称

Posted

技术标签:

【中文标题】来自资源的 Facebook XMPP IM 名称【英文标题】:Facebook XMPP IM name from resource 【发布时间】:2012-10-04 09:25:30 【问题描述】:

我正在使用 FB XMPP,我想知道用户使用的是什么客户端。如果我使用 Google Talk 聊天,我可以在资源属性中获取/设置它。但在 FB 聊天中它不起作用。虽然我设置了它,但它总是空的。

jid = [节点“@”]域[“/”资源]

使用 agsXMPP:

设置:xmppClient.Resource = "::ISIM::";

获取:presence.From.Resource

谷歌:id@gmail.com/::ISIM::478f568d

脸书:id@chat.facebook.com/

我怎样才能知道该用户正在使用我的客户端?有人有这方面的经验吗?

【问题讨论】:

【参考方案1】:

您应该为此使用服务发现或客户端版本。 见:XEP-0030: Service DiscoveryXEP-0092: Software Version

【讨论】:

你到底是什么意思?我是这方面的新手。所以我不知道我到底应该寻找什么。【参考方案2】:

服务发现和软件版本不适用于 Facebook 的 XMPP 服务器。这是一个例子,我刚刚尝试发送一个简单的:

<iq xmlns="jabber:client" type="get" to="xxxxxxx@chat.facebook.com" 
id="5"><query xmlns="http://jabber.org/protocol/disco#info"/></iq>

这就是 Facebook 的回答:

<iq from="xxxx@chat.facebook.com" to="xxxxxx@chat.facebook.com/xxxxxx" type="error" xml:lang="en" 
id="5"><query xmlns="http://jabber.org/protocol/disco#info"/><error code="503" 
type="cancel"><service-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-
stanzas"/></error></iq>

【讨论】:

以上是关于来自资源的 Facebook XMPP IM 名称的主要内容,如果未能解决你的问题,请参考以下文章

Android 的开源电话/通讯/IM聊天项目全集

集成 Facebook 聊天

xmpp 资源是不是更改?

断开连接后从 xmpp 服务器检索最后发送的消息

XMPP协议IM客户端互联详解

主流IM协议简介