gpt4 book ai didi

XMPP:多个用户可以通过同一个 TCP 连接连接到服务器吗?

转载 作者:行者123 更新时间:2023-12-02 04:39:52 26 4
gpt4 key购买 nike

我的客户通过自定义协议(protocol)与我的服务器通信。现在我正在添加由 XMPP 服务器 (ejabberd) 支持的聊天系统。我的服务器将代表所有客户端登录 XMPP 服务器,将用户消息隧道传送到 XMPP 服务器。

因为单个服务器可以有多个客户端,所以从我的服务器到 XMPP 服务器只有一个 TCP 连接就可以了。这可能吗?如果是,该怎么做?我还不熟悉 XMPP。

似乎 XML 流在开始时打开并在结束时关闭,并且结束标记没有任何指示要关闭哪个流。所以我假设我不能在同一个 TCP 连接上有多个 XML 流。请指正。

我可以尝试使用不同的用户名多次登录,并在允许的任何地方指定“来自”。我注意到在很多地方“from”属性是可选的,ejabberd 可以假设它可能基于连接,所以我担心这是否可能。

最佳答案

对于正常的客户端到服务器连接,每个客户端必须使用单独的连接。客户端通常不会在 XML 流的开始标记的 from 属性中发送他们的 JID,而是在 SASL 身份验证期间识别自己。

ejabberd 支持 XEP-0114 中描述的协议(protocol),由此您的系统可以作为“组件”连接到 ejabberd,并代表许多不同的用户发送和接收消息。根据你想做什么,你可能需要重新实现很多 ejabberd 开箱即用的功能,例如在场订阅、花名册管理、系统中用户之间的消息路由。在这种情况下,ejabberd 为您所做的唯一事情是将所有消息发送给特定域中的收件人,并路由您发送的任何出站消息。

关于XMPP:多个用户可以通过同一个 TCP 连接连接到服务器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21096758/

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