我正在尝试使用XMPP开发消息传递应用程序。我正在尝试在每个用户的多个设备上实现聊天同步。但是我只能在记录的设备或登录的第一个离线设备上获取消息。不同的设备使用不同的资源,因此完整的jabber id不同。 情景是,
我已启用消息碳和存档。 有没有办法可以在B的其他设备上获取这些消息?
谢谢, 普尼特
答案 0 :(得分:0)
从服务器中检索存档的消息,以解决您的问题。 您可以使用自定义IQ从服务器获取存档的消息。 follow this format用于自定义IQ。
答案 1 :(得分:0)
为了参与即时消息传递和在线状态活动,客户端(即设备)应在服务器上建立会话。
如果已经有一个同名的活动资源,则服务器 必须(1)终止活动资源并允许 新请求的会话,或者(2)禁止新请求的会话 并维护活动资源。服务器执行哪一个操作 尽管建议您执行案例1。在情况#1中,服务器应向活动资源发送流错误,终止XML流和基础TCP 连接活动资源,并返回类型为IQ的节 “结果”(表示成功)到新请求的会话。在#2的情况下,服务器应该向新请求的会话发送节错误,但应为此保留XML流 连接,以便新请求的会话有机会 在发送另一个资源标识符之前,先协商一个无冲突的资源标识符 请求建立会话。
(https://tools.ietf.org/html/rfc6120#section-7.7.2.2)
但是,如果您仍然想使用多个会话,则可以使用消息存档管理-XEP-0313