XMPP(Jabber)发布的Prosody 0.11.0服务器

Prosody 服务器的第0.11个稳定XMPP分支的第一个版本已发布,该版本纠正了2000多个错误。


重大变化


最重要的改进是在MUC和pubsub模块中。


这些组件一起实现了该协议当前提供的对XMPP标准的两个最广泛的XEP扩展。 尽管以前的版本已经支持MUC和pubsub相当一段时间了,但它们都相当复杂,并且在最初实现之后,很明显,有必要更新和重构代码以扩大所需XEP功能的覆盖范围,改善代码结构和解决方案的可伸缩性。


此外,还进行了此发行版中包含的许多其他更改,改进,错误修复和性能工作。


聊天功能增强


此版本中的大多数更改都与重写MUC(多用户会议)的几乎所有代码有关。 这个雄心勃勃的项目是几年前由开发大多数新代码的用户daurnimator发起的。


尽管最重要的更改是内部的,但这使项目可以更轻松地添加新功能并改善MUC服务的可伸缩性(此版本的MUC模块允许许多服务处理数十万个普通对话,例如Jitsi Meet )。


增强配置


服务器配置表单已更新,以提供更整洁的布局和更方便的参数名称。
对话对话对话框。


邮件存档


添加了使用XEP-0313协议(MAM)在MUC(多用户聊天)中存档和加载以前编写的消息的支持。 例如,这使客户端可以显示在用户不在线时在一般对话中编写的消息。


保留用户名


为了避免混淆,Prosody现在可以应用用户名保留。 当真正的所有者不在普通对话中时,这可以防止使用其他人的名字。 默认情况下,只有共享聊天的所有者/管理员才能重新分配名称(将用户添加到共享对话时),但是也可以配置该模块,以便用户可以注册自己的别名并成为参与者。


Pubsub协议


在此版本中,Pubsub的实现得到了显着改进。 Link Mauve添加了负责节点和元素安全的代码,现在数据可以存储在磁盘上,而不是RAM中,并且在服务器重新启动时不会丢失。


还引入了对高级访问控制所需的配置,节点和所有权管理的支持,并最终支持了臭名昭著的发布选项,这使客户可以通过适当的访问控制来安全地发布项目。


p


旧的PEP代码是一个单独的受限pubsub实现,实现了2009年用户所需的一切。 然而,多年来,由于它们的相关性,PEP中对pubsub功能的需求越来越多。 因此,很明显,PEP需要添加所有pubsub函数并使用现有代码。


Florian Zeitz通过创建一个新模块“ mod_pep_plus”开始了这项工作。 现在,此模块已替换了原始的“ mod_pep”,并且已经是默认的PEP实现。


与不在通讯簿中,对话中和其他客户端中的用户进行通信时,这提供了OMEMO支持。 它还允许用户使用PEP存储书签和其他数据。


新的vCard格式


此版本提供对XEP-0292中描述的vCard规范中新版本的支持,其中包括对各种新功能的支持。


新格式还存储在PEP中,以提供完全的访问控制访问权限(例如,您可以选择vCard是打开的还是仅可用于联系人)。


当前很少有(如果有的话)客户端支持vCard4,但是仍旧使用mod_vcard_legacy支持旧的vcard-temp协议,该协议透明地转换为新格式,直到更新客户端为止。


优化手机电池


此版本引入了一些社区模块,旨在延长移动通信程序客户端的电池寿命。 不断通过网络传输的流量,例如联系人状态和聊天消息的更改,可能会阻止手机切换到低功耗模式。 但是,此数据通常并不重要,尤其是在手机屏幕关闭或应用程序处于后台的情况下。


支持XEP-0352的客户端(例如“对话”)可以在应用程序处于后台时通知服务器,并且Prosody会相应地优化连接流量。


此功能在mod_csi_simple模块中实现。


内部变化


异步API


内部异步API已完成许多工作,由于增加了测试,因此提高了其可靠性。 最终,此API将用于提高大型公共聊天服务器的性能。


通过这些更改,当前版本对异步身份验证和数据存储模块提供了实验性支持。 但是,在此版本中,正式计划不支持新的API,因为计划在将来的版本中进行重大更改。


自动化测试


近年来,该项目最大的改进之一就是自动测试数量的增加。 以前的版本几乎是完全手动测试的,很少有自动测试可用。 现在,每次更改后都会运行大量测试。


本机epoll支持


这个新的实验性网络服务器提供了libevent的替代方案。 主要优点是实现的规模小且易于使用,而该功能是对Linux系统的出色支持。


来源

Source: https://habr.com/ru/post/zh-CN430998/


All Articles