gpt4 book ai didi

javascript - 您如何将 XMPP 绑定(bind) session 镜像到多个选项卡或窗口(如 facebook、okCupid 等)

转载 作者:行者123 更新时间:2023-11-28 10:30:27 25 4
gpt4 key购买 nike

我使用 http 绑定(bind)和 ejabberd 实现了基于 Web 的即时消息/聊天功能。对于懒惰的人来说,这是我的问题的简短版本:

您将如何实现一个基于 Web 的 XMPP 聊天客户端,该客户端可以同时显示在多个浏览器窗口中,每个窗口都显示打开聊天的相同 View ?

为那些关心的人提供更详细的漫谈:

一个潜在的解决方案是让每个选项卡管理它自己的连接。 XMPP 对多个客户端有足够的支持,所以让它来做路由。我对该解决方案至少有两个问题。 1 是这会导致带宽消耗的明显增加。 2是目前ejabberd中不支持多个具有相同JID的客户端连接MUC房间。这显然会在 3.1 中实现,但对我来说这是一个主要问题。

一开始我想是不是有什么flash魔法,但是页面上的swf似乎只是用来播放通知音效的。您可以使用 firebug 或类似工具删除嵌入标签来确认这一点。聊天功能仍然有效。

这基本上让我将 cookie 作为在选项卡之间共享的唯一方式。在这种情况下,主选项卡会将所有消息转储到可以从其他选项卡轮询的 cookie。这对我来说似乎很荒谬,因为轮询频率必须非常高才能避免任何延迟。当“主”窗口关闭时会发生什么?

我见过多个网站都这样做过,通常当我看到这样的问题时,我至少可以模糊地理解我会如何解决它,但我不介意承认这个网站已经吸引了我难住了。

最佳答案

因此,我在 Facebook 聊天中进行了更多研究,似乎他们只是让每个选项卡管理其自己的连接。 Ejabberd 在我使用 MUC 房间实现这一目标的过程中设置了几个障碍,所以我想这就是为什么我最初倾向于打折这个解决方案的原因。我认为私有(private)消息传递对于其他感兴趣的人来说应该更直接。

多个 MUC 实例的问题是 https://support.process-one.net/browse/EJAB-305

我想我必须为 ejabberd 打补丁。如果有人有任何其他意见,我很想听听。

关于javascript - 您如何将 XMPP 绑定(bind) session 镜像到多个选项卡或窗口(如 facebook、okCupid 等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3257594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com