是否有可能只有不同资源的 JID 加入同一个多用户聊天室
Posted
技术标签:
【中文标题】是否有可能只有不同资源的 JID 加入同一个多用户聊天室【英文标题】:Is it possible JIDs with only different resources joining same multi-user chat room 【发布时间】:2012-04-02 13:46:42 【问题描述】:在xmpp中,以下2个用户可以加入多用户聊天(MUC)还是订阅同一个pub-sub节点?
public@service.com/user1 public@service.com/user2
【问题讨论】:
相关:***.com/questions/12478871/… 【参考方案1】:当加入匿名 MUC 房间时,其他人不知道房间中其他人的“真实”JID 的房间,连接用户提供自己的 JID。
当加入一个非匿名房间时,用户提供他们的完整 JID,然后将其传输给所有居住者。
在任何一种情况下,都没有什么可以阻止用户使用相同的裸 JID 但不同的资源加入。有关 MUC 协议的更多详细信息,特别是关于加入房间的信息,请参阅 XEP-0045: Basic MUC Protocol。
通过 pub-sub 订阅时,客户端可以在订阅时提供完整的 JID 或裸 JID(无资源)。详情请见the pub-sub XEP, XEP-0060
【讨论】:
谢谢大家!另外,如果您想对此发表评论:我实际上想为多个站点用户使用单个 jabber 用户,我认为这将减少 XMPP 服务器上的负载,因为我只需要登录一个 jabber 用户.. 站点用户将是使用不同的资源相互发送消息。你认为我接近它是对的吗?【参考方案2】:在大多数 MUC 实现中,您必须为每个资源使用不同的 昵称 加入房间。如果您对第二个资源使用相同的昵称,您很可能会收到 conflict
错误。
【讨论】:
但这真的取决于服务器。例如,Prosody 允许您使用来自不同资源的相同昵称。 @Zash 还是这样吗?在对话中,我收到“尼克已在使用”错误。也许这是由于对话客户端检查所致? (加吉姆也一样)以上是关于是否有可能只有不同资源的 JID 加入同一个多用户聊天室的主要内容,如果未能解决你的问题,请参考以下文章
如何检查用户 JID 是不是已在 XMPPFrameWork 中使用