Я работаю над ejabberd уже некоторое время, я заменяю сторонний чат-инфра внутренним Ejabberd. Поскольку это был производственный переход, нам нужно сохранить предыдущие сообщения чата при переходе на ejabberd.
Итак, я создал все реестры, перевел пользователей в ejabberd, все работает нормально, теперь главная проблема, с которой я столкнулся, — перенос сообщений. Я использую mysql для пользователей, списков и сообщений. Я запускаю скрипт, который напрямую передает данные в ejabberd mysql из предыдущего чата.
Но когда я подключаюсь к пользователю, я могу видеть новые сообщения чата, которые были отправлены через ejabberd, но перенесенные чаты для того же пользователя не видны и не распространяются обратно клиенту.
Может ли кто-нибудь помочь здесь?
Вот две записи, которые я поместил в mysql, первая - запись ejabberd, а другая - ручная, клиент может синхронизировать первую, но не другую.
username timestamp peer bare_peer xml txt id kind nick created_at
xyz-customer 1454573488523175 [email protected] [email protected] "<message from='[email protected]/2131165549e1bc6553-32b9-4ec4-92bd-c9ed80fb5374' to='[email protected]' xml:lang='en' id='oG3Vb-568' type='chat'><body> CnsfjffsjJ</body><thread>90275196-0096-4bb4-a95d-d72ea5238f74</thread><request xmlns='urn:xmpp:receipts'/><delay xmlns='urn:xmpp:delay' stamp='2016-02-04T08:11:27.194+00:00' from='[email protected]/2131165549e1bc6553-32b9-4ec4-92bd-c9ed80fb5374'/><markable xmlns='urn:xmpp:chat-markers:0'/><request xmlns='urn:urbanclap:request' requestId=''/><active xmlns='http://jabber.org/protocol/chatstates'/></message>" " CnsfjffsjJ" 208044 chat "2016-02-04 08:11:28"
xyz-customer 1454570506606317 [email protected] [email protected] "<message from='[email protected]' to='[email protected]' xml:lang='en' id='I5sO7-2' type='chat'><body>GB hard</body><request xmlns='urn:xmpp:receipts'/><markable xmlns='urn:xmpp:chat-markers:0'/><active xmlns='http://jabber.org/protocol/chatstates'/></message>" "GB hard" 208045 chat NULL "2016-02-04 07:21:46"