保留XMPP连接

时间:2010-09-24 11:21:54

标签: javascript xmpp

我有一个监听XMPP服务器的GChome扩展。 我使用Strophe进行BOSH连接。 问题是“我该如何处理连接?”从XMPP核心维基,我发现最后一个连接/优先级客户端接收消息。当用户从其他地方登录时,分机停止接收消息。如何管理此连接缺失。我希望问题不是很模糊=)。

1 个答案:

答案 0 :(得分:0)

确保为每个连接使用不同的资源。最简单的方法是让服务器通过让客户端发送来生成RFC 3920bis, section 7.5中指定的资源名称:

<iq id='tn281v37' type='set'>
  <bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'/>
</iq>

并观察服务器使用完整生成的Jabber ID进行响应:

<iq id='tn281v37' type='result'>
  <bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'>
    <jid>
      juliet@im.example.com/4db06f06-1ea4-11dc-aca3-000bcd821bfb
    </jid>
  </bind>
</iq>

请记住,服务器可能会强制执行最多数量的资源,因此您可能会收到错误:

<iq id='wy2xa82b4' type='error'>
  <error type='wait'>
    <resource-constraint
        xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
  </error>
</iq>