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