如果连接多个设备,具有相同 JID 的用户在多用户聊天中出现两次

Users with same JID appears twice in the multi-user chat if they connect with multiple devices

我 运行 一个带有韵律的 XMPP 服务器。如果某些用户连接到两个客户端(例如 Conversations 和 Gajim)并加入多用户聊天,他们会出现两次。这真的很烦人,例如,根据您提到的用户名,通知只会出现在他们的桌面或移动设备上。

我无法重现此行为。即使我用两台设备加入聊天,我也只会以一个人的身份出现。我认为这是正确的行为。我可以做些什么来防止人们多次出现?

Prosody 中的 'multi-session nick' 功能是这样工作的,如果多个设备(XMPP 资源)使用相同的 XMPP 帐户(纯 JID)尝试在房间中使用相同的昵称,则会发生合并(即, nick 由多个帐户会话支持)。我是 Prosody 作者之一,也是此功能的作者。

您描述的问题是因为这些用户的多个设备没有使用相同的昵称(正如 Sam Whited 的评论所建议的那样)或者他们使用的是不同的 XMPP 帐户。昵称在一个房间内始终是唯一的,根据定义,同一个昵称不能出现两次。

昵称区分大小写("User" 不同于 "user"),并且拥有完全相同昵称出现两次的用户可能仍然存在一些小差异(例如,他们可能添加了一个space 在昵称末尾,或者他们可能使用了看起来非常相似但不同的 unicode 字符。

最简单的解决方案是让这些用户将他们的昵称更改为相同。另一种解决方案是编写一个韵律插件来执行昵称策略(假设您是服务器管理员)。