Главная » Хабрахабр » [Из песочницы] Релиз XMPP (Jabber) сервера Prosody 0.11.0

[Из песочницы] Релиз XMPP (Jabber) сервера Prosody 0.11.0

11-ой стабильной ветки XMPP сервера Prosody с исправлениями более чем 2000 ошибок. Представлен первый релиз 0.

Основные изменения

Наиболее значительные улучшения коснулись модулей MUC и pubsub.

Хотя предыдущие версии уже довольно давно поддерживали MUC и pubsub, оба они довольно сложны, и после первоначальной реализации стало понятно, что необходимо провести обновление и рефакторинг кода, чтобы увеличить покрытие требуемой XEP функциональности, улучшить структуру кода и масштабируемость решений. Вместе эти компоненты реализуют два из самых обширных расширений XEP стандарта XMPP, которые в настоящее время предоставляет протокол.

Также было осуществлено много других изменений, улучшений, исправлений ошибок, и проведено работ над производительностью, которые вошли в этот выпуск.

Улучшения в работе чата

Этот амбициозный проект был начат несколько лет назад пользователем daurnimator, который разработал большую часть нового кода. Наибольшая часть изменений в этом выпуске коснулась переписывания практически всего когда, касающегося MUC (Multi-User Conference).

Хотя наиболее значимые изменения являются внутренними, это позволило проекту более легко добавлять новые функции и улучшать масштабируемость MUC-сервисов (эта версия модуля MUC позволяет работать многим сервисам с сотнями тысяч общих бесед, как например, Jitsi Meet).

Улучшенное конфигурирование

Форма конфигурации сервера была обновлена, обеспечивая более аккуратную компоновку и более удобные наименования параметров.
Диалоговое окно конфигурации общей беседы.

Архивирование сообщений

Это позволяет клиенту отображать сообщения, например, которые были написаны в общей беседе, когда пользователь отсутствовал онлайн. Была добавлена поддержка архивирования и подгрузки ранее написанных сообщений в MUC (Multi User Chat) с использованием протокола XEP-0313 (MAM).

Резервирование имени пользователя

Это предотвращает использование чужого имени, когда настоящий владелец не находятся в общей беседе. Чтобы предотвратить путаницу, Prosody теперь может применять резервирование имён пользователей. По умолчанию только владельцы / администраторы общих чатов могут осуществлять пере/назначение имени (при внесении пользователя в общую беседу), но модуль также может быть настроен так, чтобы пользователи могли регистрировать свои собственные псевдонимы и становиться участниками.

Протокол Pubsub

Link Mauve добавил код, отвечающий за сохранность узлов и элементов, теперь данные могут храниться на диске, а не в оперативной памяти, и не теряются при перезапуске сервера. Рализация pubsub значительно улучшена в этом выпуске.

Также была внедрена поддержка конфигурирования, узлов и управления принадлежностью, необходимых для расширенного контроля доступа, и, наконец, поддержку печально известных «publish-options», что позволяет клиентам безопасно публиковать элементы с возможностью надлежащего управления доступом.

PEP

Однако за эти годы все больше и больше функций pubsub были востребованы в PEP, благодаря своей большой востребованности. Старый код PEP представляет собой отдельную ограниченную реализацию pubsub, которая реализовала все, что было нужно пользователями в 2009-ом году. Поэтому стало очевидно, что в PEP необходимо добавить все функции pubsub и использовать уже имеющийся код.

Этот модуль теперь заменил исходный «mod_pep» и уже является реализацией PEP по умолчанию. Florian Zeitz начал эту работу, создав новый модуль «mod_pep_plus».

Он также позволяет пользователям использовать PEP для хранения закладок и других данных. Это обеспечивает поддержку OMEMO при общении с пользователями, не находящихся в адресной книге, в разговорах и других клиентах.

Новый формат vCard

Этот выпуск обеспечивает поддержку новой версии в спецификации vCard, описанной в XEP-0292, которая включает поддержку различных новых функций.

Новый формат также хранится в PEP, обеспечивая полный доступ к управлению доступом (например, можно выбирать, открыт ли ваш vCard или доступен только для контактов).

Немногие (если есть) клиенты в настоящее время поддерживают vCard4, но старый протокол vcard-temp по-прежнему поддерживается с помощью mod_vcard_legacy, который прозрачно преобразуется в новый формат, пока клиенты не обновятся.

Оптимизация работы мобильного аккумулятора

Постоянно передающийся по сети трафик, такой как изменения статуса контакта и сообщения в чате, может мешать переключению телефона в режим с низким энергопотреблением. В этом выпуске представлены некоторые модули сообщества, разработанные с целью увеличения времени автономной работы клиентов мобильных мессенджеров. Однако эти данные, как правило, неважны, особенно когда экран телефона выключен или приложение находится в фоновом режиме.

Клиенты, поддерживающие XEP-0352, такие как «Conversations», могут информировать сервер, когда приложение находится в фоновом режиме, и Prosody оптимизирует трафик соединения соответствующим образом.

Данная функция реализованп в модуле mod_csi_simple.

Внутренние изменения

Асинхронные API

В конечном итоге этот API будет использоваться для повышения производительности крупных публичных чат-серверов. Много работы было проделано над внутренним асинхронный API, повышая его надежность благодаря добавленным тестам.

Однако в этом выпуске новый API официально не поддерживается, так как на будущие версии еще запланированы большие изменения. С этими изменениями текущий выпуск имеет экспериментальную поддержку асинхронных модулей аутентификации и хранения данных.

Автоматизированные тесты

Предыдущие выпуски были почти полностью протестированы вручную, при этом было доступно очень мало автоматических тестов. Одним из крупнейших улучшений в проекте в последнее время стало увеличение числа автоматических тестов. Теперь же есть большой набор тестов, запускаемых после каждого изменения.

Встроенная поддержка epoll

Основные преимущества заключаются в малых размерах реализации и простоте использования, при этом особенностью является его исключительная поддержка в Linux системах. Этот новый экспериментальный сетевой сервер предоставляет альтернативу libevent.

Источник


Оставить комментарий

Ваш email нигде не будет показан
Обязательные для заполнения поля помечены *

*

x

Ещё Hi-Tech Интересное!

В России приступили к тестированию отечественного нейроинтерфейса «Нейрочат»

Эта система предназначена для пациентов с ограниченными физическими способностями. В конце прошлого года компания Neurotrand разработала вместе с партнерами программно-аппаратный комплекс с нейрогарнитурой. Это могут быть пациенты клиник, перенесшие инсульт, военные с тяжелыми ранениями, люди, получившие травму на производстве. Она ...

Зрители не могут отличить нативную картинку 4K от интерполяции

Такие выводы можно сделать из результатов российского исследования, проведённого холдингом «Ромир». Человеческого зрения недостаточно, чтобы отличить настоящее видео 4K от картинки, которую получили из изображения HDTV с помощью интерполяции. Опрошенным показывали на телеэкране фрагменты двух видеороликов и спрашивали о восприятии ...