如何在XMPP服务器上实现XEP-0289 FMUC插件?

如何在XMPP服务器上实现XEP-0289 FMUC插件?,xmpp,openfire,multiuserchat,federated,Xmpp,Openfire,Multiuserchat,Federated,我需要在XEP-0289的线路上实现一个分布式XMPP MuC应用程序,减去一些特性,本质上我希望有一个插件的基本实现,我关心的是解决容错问题,到目前为止,我不想担心289中规定的性能考虑。 我研究了SleekXmpp作为开发服务器端插件的工具,但不知道将其用于这样的实现会有多舒服,我研究的其他选项是OpenFire、Tigase。Python/java和其他关键特性我觉得很好,这将是很好的文档,易于使用等等。记住,我想知道什么是首选的路径。 欢迎提供任何指导。您应该能够编写包含FMUC(或类似

我需要在XEP-0289的线路上实现一个分布式XMPP MuC应用程序,减去一些特性,本质上我希望有一个插件的基本实现,我关心的是解决容错问题,到目前为止,我不想担心289中规定的性能考虑。 我研究了SleekXmpp作为开发服务器端插件的工具,但不知道将其用于这样的实现会有多舒服,我研究的其他选项是OpenFire、Tigase。Python/java和其他关键特性我觉得很好,这将是很好的文档,易于使用等等。记住,我想知道什么是首选的路径。
欢迎提供任何指导。

您应该能够编写包含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),其他供应商对此感兴趣,因此,使用标准协议可能会使您在不重新发明轮子方面受益。

谢谢。很高兴听到提案作者本人的建议。我的容错思想是,断开的聊天室必须能够满足本地节点的需要,并在重新建立连接时与FMUC同步,这是XEP289解决的问题。我对sleekXmpp没有任何问题,但在开始开发之前,我只是想确保这是否可行,是否是最好的方法,如果可以用sleekXmpp实现,这对我来说是个好消息。如果你能指出某个MuC组件(Pythonic SleekXmpp)的现有实现,作为我的参考,这会有所帮助。啊,如果这就是你想要的容错,那么是的,这就是FMUC存在的理由(连同带宽节约)。我不知道有没有使用Sleek的现有MUC实现,恐怕我们的实现是服务器核心的一部分。给出了如何开始使用组件的概要。