我需要在 XEP-0289 的行上实现一个分布式 XMPP MuC 应用程序减去一些特性,本质上我想要一个插件的基本实现,我关心的是解决容错问题,到目前为止我做不想担心 289 中指定的性能考虑。我已经研究过 SleekXmpp 作为开发服务器端插件的工具,但不知道将它用于这样的实现会有多舒服,我看过的其他选项在 OpenFire , Tigase。我对 Python/Java 和其他需要考虑的关键特性感到满意,比如良好的文档、易用性等,请记住这一点,我想知道这种开发的首选路径是什么。任何指导将不胜感激。
1 回答
您应该能够编写一个包含 FMUC(或类似)的 MUC 组件。执行此操作的一般方法是使用支持 XEP-0114 组件的库(例如 SleekXMPP (Python)、Swiften (C++))并通过它实现 MUC+FMUC。您还没有说出您对 SleekXMPP 的担忧是什么,但它是 XMPP 社区中相当受人尊敬的库,因此似乎是一个公平的选择(我会选择 Swiften,但作为作者之一,我有偏见)。
您的第二个选项(直接修补服务器)通常不是 XMPPish 添加自定义的方式(因为它是特定于供应商的),但如果您能找到足够熟悉服务器代码的人,或者如果您愿意,也应该可以使用变成这样。
要实现容错(假设您的意思是对服务器故障的恢复能力),您需要集群运行您的 XMPP 服务器,并且还集群您的 FMUC 实现。完成此操作后,使用 DNS 中的 SRV 记录的通常 XMPP 故障转移应确保其他服务器重试与另一台主机的连接。
附带说明一下,FMUC 的下一个版本(XEP-0289)将剥离当前版本的一些功能,并根据部署经验进行一些改进,所以如果您的工作不是时间紧迫的,它在它发布时阅读它可能对您有所帮助。我还注意到已经存在至少一种 FMUC 实现(Isode 的 M-Link,我在其中工作),并且其他供应商也对此感兴趣,因此使用标准协议可能会使您受益,而不是重新发明轮子.