IOS と Android の両方で ejabberd サーバーを使用してチャット アプリを開発しています。また、自分のサーバー api に送信されたオフライン メッセージを取得する ejabberd のモジュールも作成しました。
私自身のサーバー API は、FCM を使用して IOS/Android プラットフォームに通知を送信します。
クライアント側では、アプリケーションがフォアグラウンドまたはバックグラウンドにある場合、アプリケーションは ejabberd に接続されたままになり、クライアントがメッセージを受信すると、ejabberd はメッセージ配信ステータスを送信します。
アプリが終了している間 (サービスが実行されていない)、ejabberd (オフライン) に接続されていないという問題に直面しています。終了していないときにこのアプリにメッセージを送信すると、通知が届きますが、メッセージはまだ配信されません。アプリの終了中に通知を受信したときに、メッセージを配信済みとしてマークする方法。
さらに説明すると、同じ機能が whatsapp で正常に機能しています。
- デバイス A には whatsapp がインストールされており、whatsapp がオフ (終了) になっている
- デバイス B には whatsapp が実行されています
- デバイス B がデバイス A にメッセージを送信する
- デバイス A が whatsapp 通知を受信する
- デバイス A で何もしなくても、デバイス B のメッセージ ステータスは [配信済み] とマークされます。
このシナリオを ejabberd で実装するにはどうすればよいですか?