我已经使用xmpp + openfire + strophe实现了网络聊天。在同一个openfire和xmpp服务器上,我们也开发了IOS chat。
我正面临以下问题。
假设某个用户A在IOS应用程序中以xmpp连接,而用户A与用户B聊天。现在,同一用户A使用strophe通过网络聊天连接至xmpp,而用户B将消息发送给用户A,那么用户A将在网络聊天中包含消息仅连接。
现在,用户A在IOS中与xmpp连接,并且用户B发送消息,那么用户A仅在IOS应用程序中获得消息,而不是在Web聊天中。
用户A是否有可能在所有已创建的连接处收到消息?
一个用户是否可能具有多个xmpp连接,并且所有连接都能够向另一个用户发送消息并能够在该用户的所有连接处获取消息?
您能帮我在Strophe Js和IOS中解决此问题吗?
您可以通过设置其他资源(https://wiki.xmpp.org/web/Jabber_Resources)进行管理。每个设备必须声明一个不同的资源(“ myPc”,“ android”,“ iphone”,“ ipad”,“ Spark”,它只是一个任意的String)。
必须将Openfire配置为管理多个资源(服务器->服务器设置->资源策略)。
编辑:Openfire还有一个基于优先级的传递系统,该系统选择优先级最高的资源并仅向其发送消息。(一个很好的讨论:https : //community.igniterealtime.org/thread/53377)通过设置属性来启用:
route.all-resources
至
true
根据这个问题,您还需要Openfire服务器,多个连接,route.all-resources不起作用
route.really-all-resources
设置为
true
怎么做:
请记住
对不起,但我不知道如何在Strophe.js中分配资源名称,如在某些示例中看到的那样,程序员只是将其手动添加为字符串concat(user@server/resource
在登录时)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句