私はかなり前から ejabberd に取り組んでおり、サードパーティのチャット インフラストラクチャを社内で Ejabberd に置き換えています。プロダクション スイッチだったので、ejabberd に切り替える間、以前のチャット メッセージを維持する必要があります。
そのため、すべての名簿を作成し、ユーザーを ejabberd に移行しましたが、これはすべて正常に機能しています。現在直面している主な課題は、メッセージの移行です。ユーザー、名簿、メッセージに mysql を使用しています。以前のチャット インフラストラクチャから ejabberd mysql にデータを直接プッシュするスクリプトを実行しています。
しかし、ユーザーに接続しているときに、ejabberd を介して送信された新しいチャット メッセージを表示できますが、同じユーザーの移行されたチャットは表示されず、クライアントに反映されません。
誰かがここで助けることができますか?
mysql に入力した 2 つのエントリを次に示します。最初の 1 つは ejabberd エントリで、もう 1 つは手動です。クライアントは最初のエントリを同期できますが、別のエントリは同期できません。
username timestamp peer bare_peer xml txt id kind nick created_at
xyz-customer 1454573488523175 abc-provider@xxx.amazonaws.com abc-provider@xxx.amazonaws.com "<message from='xyz-customer@xxx.amazonaws.com/2131165549e1bc6553-32b9-4ec4-92bd-c9ed80fb5374' to='abc-provider@xxx.amazonaws.com' 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='xyz-customer@xxx.amazonaws.com/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 abc-provider@xxx.amazonaws.com abc-provider@xxx.amazonaws.com "<message from='xyz-customer@xxx.amazonaws.com' to='abc-provider@xxx.amazonaws.com' 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"