Сообщения xmpp теряются, когда клиентское соединение неожиданно теряется

Я использую сервер ejabberd и ios xmppframework. Есть два клиента, А и Б.

Когда A и B находятся в сети, A может отправить сообщение B успешно.Если B находится в автономном режиме, B может получить сообщение, когда B снова в сети.Но когда B внезапно / неожиданно потерял соединение, такое как ручное закрытие Wi-Fi, сообщение, отправленное A, потеряно. Б никогда не получит это сообщение.

Я предполагаю, что причина в том, что B внезапно потерял соединение, и сервер все еще думает, что B находится в сети. Таким образом, сообщение в автономном режиме работает при этом условии.

Итак, мой вопрос: как обеспечить, чтобы сообщение, отправленное А, было получено Б? Чтобы убедиться, что нет потерянных сообщений.