Miranda NG Official Community Forum
Miranda NG русскоязычный форум => Общие разговоры о Miranda NG => Topic started 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
Плагины:
- Avatar service 0.98.1.2
- Modern contact list 0.9.1.10
- Crash dumper 0.1.0.4
- Db autobackuper 0.1.0.4
- Database Editor++ 4.0.1.3
- Miranda NG MDBX database driver 0.95.9.1
- Dummy protocol 0.2.0.0
- Floating contacts 0.7.0.5
- History++ 1.5.1.5
- IEView 1.6.0.3
- Import contacts and messages 0.95.11.1
- IRC protocol 0.95.10.1
- Jabber protocol 0.95.11.1
- Keyboard notify ext. 1.6.0.1
- Plugin updater 0.2.0.6
- Smileyadd 0.3.1.2
- Spell checker 0.2.6.6
- Status manager 1.2.0.6
- TabSRMM 3.6.1.2
- TopToolBar 0.8.0.5
-
Всё вопросы это про сервер и его конфигурирование.
-
Можно еще не на сервере, а в миранде открыть диалог настроек комнаты и нажать ОК
-
Можно еще не на сервере, а в миранде открыть диалог настроек комнаты и нажать ОК
Смоделировал - работает, благодарю. Взяли на заметку как обходное решение.
-
Всё вопросы это про сервер и его конфигурирование.
Поменял тему поста.Здесь описана аналогичная проблема: Сервер 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...То есть при регистрации новой комнаты, клиент должен прочитать настройки по умолчанию и сразу подтвердить их, чтобы разблокировать комнату.
Есть идеи как жить дальше? :-\
-
Есть идеи как жить дальше?
А у нас процесс регистрации заточен на ejabberd, где согласно версии этого XEP от 2002 года должен прилетать тег <created/>, а в openfire он, с очевидностью, не прилетает. Поправил, отправил дев билд строиться.