Xmpp 使用Strophe的多资源ejabberd连接

Xmpp 使用Strophe的多资源ejabberd连接,xmpp,ejabberd,strophe,Xmpp,Ejabberd,Strophe,我是埃贾伯德和斯特罗菲的新手。我正在使用strophe客户端和ejabberd xmpp服务器开发web聊天应用程序 后端中的连接预绑定: XMPPPrebind xmppPrebind = new XMPPPrebind(boshHost, xmppDomain, boshUri, resource, boshPort, useSsl, debug); xmppPrebind.connect(username, password); xmppPrebind.au

我是埃贾伯德和斯特罗菲的新手。我正在使用strophe客户端和ejabberd xmpp服务器开发web聊天应用程序

后端中的连接预绑定:

XMPPPrebind xmppPrebind = new XMPPPrebind(boshHost, xmppDomain,
                boshUri, resource, boshPort, useSsl, debug);
xmppPrebind.connect(username, password);
xmppPrebind.auth();
SessionInfo sessionInfo = xmppPrebind.getSessionInfo();

Attach connection in strophe on UI:

connection = new Strophe.Connection(BOSH_SERVICE);
connection.attach(userjid + '@' + domain, sid, rid, onConnect);
connection.addHandler(onMessage, null, 'message', null, null, null);
......
在页面加载时,我从后端建立新的ejabberd连接,并获取sid和rid。在UI上的strophe中使用sid和rid连接。它工作正常,没有问题

但当用户在浏览器中为同一用户打开新选项卡时,会导致新ejabberd连接与新sid和rid连接,然后旧选项卡断开连接

如何在两个选项卡或多个选项卡中保持活动连接,以便用户可以在所有选项卡中发送/接收消息

我在谷歌上搜索过,但没有找到在网络聊天中启用此功能的步骤。 还要努力理解:

我被堵住了,请帮忙。
谢谢

您需要为每个浏览器选项卡生成一个新的唯一资源。根据设计,使用相同的资源名称将断开以前连接的资源。

重复的感谢雷蒙德,问题已解决。我为每个选项卡生成新的唯一id。