【问题标题】:ejabberd connection for multiple resources using Strophe使用 Strophe 的多个资源的 ejabberd 连接
【发布时间】:2016-02-17 15:37:55
【问题描述】:

我是 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://xmpp.org/extensions/xep-0280.html

我在这里被阻止了,请帮助。 谢谢

【问题讨论】:

标签: xmpp ejabberd strophe


【解决方案1】:

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

【讨论】:

  • 感谢 Rémond,问题已解决。我为每个标签生成新的唯一 ID。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-04
  • 2015-11-28
相关资源
最近更新 更多