Я занимаюсь разработкой приложения для чата с использованием сервера ejabberd для IOS и Android.Я также написал модуль для ejabberd, чтобы получать автономные сообщения, отправленные на мой собственный сервер API.
мой собственный сервер API будет отправлять уведомления на платформы IOS / Android с помощью FCM.
На стороне клиента, если приложение находится на переднем плане или в фоне, оно будет оставаться подключенным к ejabberd, а если клиент получит сообщение, то ejabberd отправит статус доставки сообщения.
Я столкнулся с проблемой, когда приложение закрыто (служба не запущена), что означает, что оно не подключено к ejabberd (в автономном режиме).если я отправлю сообщение в это приложение, пока оно не прервано, оно получит уведомление, но сообщение все еще не доставлено.как пометить сообщения как доставленные при получении уведомления, когда приложение завершено.
, чтобы объяснить это более подробно, те же функции работают нормально с WhatsApp:
- устройство A имеет WhatsAppустановлен и WhatsApp был выключен (прекращено)
- На устройстве B работает WhatsApp
- Устройство B отправляет сообщение на устройство A
- Устройство A получает уведомление WhatsApp
- Ничего не делая на устройстве A, состояние сообщения на устройстве B помечается как доставленное.
Как реализовать этот сценарий с помощью ejabberd?