Miranda NG Official Community Forum

Miranda NG русскоязычный форум => Общие разговоры о Miranda NG => Topic started by: San-D on 26 05 2020, 11:52:24

Title: Регистрация нового чата пользователем и XEP-0045
Post by: San-D on 26 05 2020, 11:52:24
Добрый день.
Коллеги, вопрос по функционалу для работы с чатами. Возможно, вопрос касается openfire, а не Miranda (не уверен).

При регистрации нового чата пользователем, в консоли сервера чат отображается сразу (Openfire - раздел Групповой чат - подраздел Все комнаты).

Если сразу после регистрации чата пригласить нового пользователя, приглашение не передаётся, просто ничего не происходит.

При анализе проблемы выяснил, что чаты, которые создают пользователи, не регистрируются в таблице ofMucRoom БД openfire, (записей нет в таблице). Хотя чат виден в списке в консоли сервера!

Как только открыть настройки нового чата в консоли сервера и просто перезаписать настройки (Openfire - раздел Групповой чат - подраздел Все комнаты - настройки чата - Сохранить изменения), ничего больше не делая, запись в таблице ofMucRoom сразу появляется, и сразу начинают работать приглашения.

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

Такое ощущение, что новые пользовательские чаты хранятся где-то в дебрях кеша, в БД регистрации сразу не происходит.

Это баг? Фича? Неправильные настройки севера или клиента?


Miranda NG 0.95.11.22555 x64
Openfire 4.5.1
Плагины:
Title: Re: Регистрация нового чата пользователем - непонятное поведение системы
Post by: Apollo2k4 on 26 05 2020, 16:40:24
Всё вопросы это про сервер и его конфигурирование.
Title: Re: Регистрация нового чата пользователем - непонятное поведение системы
Post by: Davis on 27 05 2020, 07:05:37
Можно еще не на сервере, а в миранде открыть диалог настроек комнаты и нажать ОК
Title: Re: Регистрация нового чата пользователем - непонятное поведение системы
Post by: San-D on 27 05 2020, 07:17:36
Можно еще не на сервере, а в миранде открыть диалог настроек комнаты и нажать ОК
Смоделировал - работает, благодарю. Взяли на заметку как обходное решение.

Title: Re: Регистрация нового чата пользователем и XEP-0045
Post by: San-D on 27 05 2020, 13:21:33
Всё вопросы это про сервер и его конфигурирование.
Поменял тему поста.Здесь описана аналогичная проблема:   Сервер Openfire не сохраняет чат в таблице ofMucRoom (https://overcoder.net/q/3086782/%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80-openfire-%D0%BD%D0%B5-%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D1%8F%D0%B5%D1%82-%D1%87%D0%B0%D1%82-%D0%B2-%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B5-ofmucroom).

В ответе ссылаются на описание процесса создания комнаты согласно XEP-0045 (https://xmpp.org/extensions/xep-0045.html#createroom).
В описании протокола в п. 10.1.1 пп. 5 сказано, что инициатор создания комнаты должен подтвердить конфигурацию, и до подтверждения комната должна быть заблокирована.Именно поэтому эта рекомендация работает:
Можно еще не на сервере, а в миранде открыть диалог настроек комнаты и нажать ОК
В настройках openfire (https://discourse.igniterealtime.org/t/openfire-properties/74535) не нашли опций, которые могут помочь исправить ситуацию.
Всё-таки похоже проблему следует решать на стороне Miranda, ибо XEP-0045...То есть при регистрации новой комнаты, клиент должен прочитать настройки по умолчанию и сразу подтвердить их, чтобы разблокировать комнату.

Есть идеи как жить дальше?  :-\
Title: Re: Регистрация нового чата пользователем и XEP-0045
Post by: ghazan on 03 06 2020, 08:29:48
Есть идеи как жить дальше? 
А у нас процесс регистрации заточен на ejabberd, где согласно версии этого XEP от 2002 года должен прилетать тег <created/>, а в openfire он, с очевидностью, не прилетает. Поправил, отправил дев билд строиться.