Jos*_*all 9 architecture networking xmpp
如果我有一个单独的系统,它有自己的用户和存在概念,那么创建到XMPP服务器网络的桥梁最合适的架构是什么?据我所知,有三种主要方式:
充当服务器.这会创建一个接触点,但我担心它会影响兼容性,并可能在我的系统中创建模拟服务器的复杂性.
充当客户.这似乎暗示我的系统中每个用户需要一个连接,这不能很好地扩展.
我听说过XMPP网关协议,但目前还不清楚这是否比客户端解决方案更好.我也不知道这是不是标准.
任何建议或权衡将不胜感激.例如,这些解决方案中的任何一个都需要在目标XMPP服务器中运行代码(不太可能我能做的事情).
您听说过的 XMPP 网关协议很可能与传输有关。传输是连接到 XMPP 服务器和非 XMPP 服务器的服务器。通过运行传输,我可以使用 Jabber 客户端与使用 MSN Messenger 等工具的人交谈。
传输通常会为其视为在线的每个 JID 连接一次到远程网络。也就是说,它是你的选项2的相反。这是因为传输和非XMPP网络之间没有特殊的关系;运输只是充当一群常客。为此,XMPP 客户端必须首先向传输注册,提供远程网络的登录凭据,并允许传输查看其存在。
这有可能更好地扩展的唯一原因是同一远程网络可以有许多传输。例如,我的 Jabber 服务器可以运行到 MSN 的传输,另一台 Jabber 服务器可以运行另一个,依此类推,每个服务器都为不同的 XMPP 用户子集提供连接。虽然这会分散 Jabber 端的负载,并且系统上的负载平衡也可能会分散负载,但两个系统之间仍然需要许多连接。
就您而言,因为(我假设)非 XMPP 方面正在合作,所以将 XMPP 服务器接口放在非 XMPP 服务器上可能是您的最佳选择。该服务器接口最适合管理 XMPP JID 之间的映射以及 JID 在其自己的网络上的显示方式,而不是强制 XMPP 用户注册等。
如果您还没有看过这些,您可能会发现它们很有用:
希望有帮助。