XMPP:客户端仅从资源绑定接收通知

Posted

技术标签:

【中文标题】XMPP:客户端仅从资源绑定接收通知【英文标题】:XMPP: Client Receives Notifications Only From Resource Bound 【发布时间】:2014-04-09 17:40:45 【问题描述】:

我正在用 Python 构建一个 XMPP 客户端。客户端需要从多个 pubsub 获取通知。在会话初始化期间,客户端必须绑定到资源。

例如,客户端可以绑定到pubsub.sales

<body rid="34314915"
      sid="fe63566533334135bb2edf70b80a62743416b584"
      xmlns="http://jabber.org/protocol/httpbind">
  <iq id="KVwaFGvr+M53"
      type="set"
      xmlns="jabber:client">
    <bind xmlns="urn:ietf:params:xml:ns:xmpp-bind">
      <resource>pubsub.sales</resource>
    </bind>
  </iq>
</body>

当我这样做时,客户端只会从它所绑定的资源中获取消息。如何从其他 pubsub 获取通知?

【问题讨论】:

【参考方案1】:

问题与存在有关。这是客户端发送的内容:

<body rid="34314917"
      sid="fe63566533334135bb2edf70b80a62743416b584"
      xmlns="http://jabber.org/protocol/httpbind">
  <presence xmlns="jabber:client">
    <priority>-1</priority>
  </presence>
</body>"""

当优先级为负时,客户端只接收发送到 full JID 的通知。我将优先级设置为 7,现在客户端会收到来自所有订阅的 pubsub 的通知。

【讨论】:

以上是关于XMPP:客户端仅从资源绑定接收通知的主要内容,如果未能解决你的问题,请参考以下文章

当两个 Jabber (XMPP) 客户端连接时,只有一个能够接收消息,两个都可以发送

通过 IM 客户端接收 PubSub 通知

将 AppEngine XMPP 用于客户端通知

有没有办法实现 XMPP 客户端或接收到的消息,可以接收来自 XMPP 服务器的所有消息?

XMPP 客户端接收服务器消息

XMPP 客户端无法接收离线消息