【问题标题】:Setting resource in XMPP Facebook chat在 XMPP Facebook 聊天中设置资源
【发布时间】:2013-01-10 13:55:47
【问题描述】:

当我们使用xmpp连接googletalk时,我们可以设置资源属性,从而可以识别用户是否从android、pc等登录。

我想知道是否有任何类似的方法可以在 facebook 聊天 API 中指定/识别设备。
当我连接 xmpp 时,facebook 会进行所有内部交易并抹去我的资源价值。
有没有其他方法可以做到这一点?

【问题讨论】:

    标签: facebook xmpp


    【解决方案1】:

    这不是资源标识符的用途,即使许多用户或软件将人类可读的文本放在那里。出于安全原因,资源应该是不可预测的。

    使用服务发现:
    http://xmpp.org/extensions/xep-0030.html

    【讨论】:

    • 在提出这个问题后不久,我偶然发现了 xep-0030。不幸的是,Facebook 聊天至今还不支持这样的标准 xep。它给出了“服务不可用”错误。甚至 Googletalk 在回复中使用服务器提供的值,并且实际上不允许客户端添加任何信息:-/
    • 这不需要特殊的服务器支持。他们只需要将节从一个客户端路由到另一个客户端。您是否将数据包发送到正确的完整 jid(带资源的 jid)?
    • 你是对的,服务器正确地路由了 Iq 请求!但这似乎不适用于facebook。我正在将 Iq 发送给翻译后的 jid(形式为 -12345678@chat.facebook.com),但它似乎没有到达另一端..
    • iqs 必须发送给完整的 jids(带资源)
    • Facebook XMPP 不支持任意节,因此这不太可能起作用。
    【解决方案2】:

    使用XEP-0115:实体能力。用大写标记你的存在节。使用描述每个客户端的 disco#info 预加载所有客户端的 caps 缓存。这对您在 FaceBook 上的客户几乎没有用,并且在其他系统上的互操作性非常好。

    请多次阅读 XEP。一开始几乎每个人都误解了它。

    【讨论】:

      猜你喜欢
      • 2012-06-08
      • 2013-08-28
      • 1970-01-01
      • 1970-01-01
      • 2013-01-08
      • 1970-01-01
      • 1970-01-01
      • 2012-07-25
      • 2012-12-19
      相关资源
      最近更新 更多