我是ejabberd和Strophe的新人。我正在使用strophe客户端和ejabberd xmpp服务器开发网络聊天应用程序。
后端连接预绑定:
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。使用sid连接连接并在UI上删除strophe。它工作正常,没有问题。
但是当用户在浏览器中为同一个用户打开新选项卡时,它会导致新的ejabberd与新sid和rid的连接,然后旧的选项卡会断开连接。
如何在两个标签或多个标签中保持活动连接,以便用户可以在所有标签中发送/接收消息?
我在谷歌搜索但未找到步骤在网络聊天中启用此功能。 另请尝试理解:http://i.stack.imgur.com/xoR0s.png
我被封锁了,请帮忙。 感谢
答案 0 :(得分:3)
您需要为每个浏览器标签生成新的唯一资源。根据设计,使用相同的资源名称将断开以前连接的资源。