【问题标题】:How to implement XEP-0289 FMUC plugin on a XMPP server?如何在 XMPP 服务器上实现 XEP-0289 FMUC 插件?
【发布时间】:2014-10-18 23:43:26
【问题描述】:

我需要在 XEP-0289 的行上实现一个分布式 XMPP MuC 应用程序减去一些特性,本质上我想要一个插件的基本实现,我关心的是解决容错问题现在我不想担心 289 中指定的性能注意事项。 我已经研究过 SleekXmpp 作为开发服务器端插件的工具,但不知道将它用于这样的实现会有多舒服,我看过的其他选项是 OpenFire , Tigase。我对 Python/Java 和其他需要考虑的关键特性感到满意,比如良好的文档、易用性等,请记住这一点,我想知道这种开发的首选路径是什么。 任何指导将不胜感激。

【问题讨论】:

    标签: xmpp openfire multiuserchat federated


    【解决方案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,我在其中工作),并且其他供应商也对此感兴趣,因此使用标准协议可能会使您受益,而不是重新发明轮子.

    【讨论】:

    • 谢谢。很高兴听到提案作者本人的意见。我对容错的想法是,被切断的聊天室必须能够在重新建立连接时迎合本地节点并与 FMUC 同步,这XEP289 地址。我对 slimXmpp 没有任何问题,但在我开始从事开发工作之前,我只是想确保这是否可行和最好的方法,如果它可以用 slimxmpp 完成,这对我来说是个好消息。如果您能指出一些 MuC 组件(Pythonic SleekXmpp)的现有实现作为我的参考,那将有所帮助。..
    • 啊,如果这就是您想要的容错能力,那么是的,这就是(连同节省带宽)FMUC 存在的理由。我不知道现有的使用 Sleek 的 MUC 实现,恐怕我们的实现是服务器核心的一部分。不过,sleekxmpp.com/getting_started/component.html 提供了如何开始使用组件的概要。
    猜你喜欢
    • 2013-02-09
    • 2015-12-03
    • 2016-08-22
    • 2018-01-05
    • 2014-06-17
    • 1970-01-01
    • 2019-02-12
    • 2010-12-11
    • 2017-03-13
    相关资源
    最近更新 更多