отправка push-уведомлений в ios для чата автономному пользователю, openfire xmpp

У меня есть приложение ios chat, которое использует openfire, и мне нужно отправить push-уведомление, когда сообщение (1) может(2) приложение находится в приостановленном состоянии, т.е.создать уведомление самостоятельно.

Я прочитал большинство связанных вопросов / предложений по этому вопросу в stackoverflow и в других местах, и я нашел несколько решений моей проблемы. Я не являюсь разработчиком ios и не знаю ничего о openfire или xmpp раньше, чем через пару дней, поэтому я боюсь, что мое понимание вещей может быть неполным и мои решения могут быть ошибочными.

Пожалуйста, подтвердите мое понимание этого и предложите, если я что-то упустил или есть лучший подход. Пожалуйста, предложите также о том, насколько сложно будет реализовать конкретное решение, перечисленное ниже.

Задача здесь состоит в том, чтобы определить, когда требуется толчок и где процесс должен быть начат, поэтому

1) Один из способов - использовать реализацию xmpp 0184 для проверки, доставлено ли сообщение. для этого у нас должен быть какой-нибудь поставленный флаг с сообщением в базе данных ios, который обновляется, когда доставленный ответ получен с другого конца. Таким образом, нам нужно проверить этот флаг через некоторое время, и, если доставленный статус ложный, инициировать процесс push с сообщением. Выглядит как сложное решение (дождитесь ответа .. проверьте флаг с некоторой задержкой .. не очень впечатляет)

2) Более прямой подход - сделать что-то в openfire, когда openfire можетЧтобы доставить сообщение, оно сохраняет его в автономной таблице, мы можем сделать некоторый перехват этой части и инициировать процесс отправки с сообщением. Похоже, это правильный подход, но я действительно боюсь получить столько внутри openfire и что-то изменить (Это может быть легко, кто-то, кто немного работал с openfire, может сказать?)

3) Это мое последнее средство, и это не решение проблемы ... но если я могуЧтобы сделать это правильно в ожидаемые сроки (через неделю), мы планируем отправить push-уведомление для всех сообщений. oppenfire позаботится о нормальном чате, в то время как push-уведомление будет отправляться с нашего сервера для каждого сообщения, но когда приложение находится на переднем плане, мы делаем что-то для обработки дополнительных push-сообщений, которые не нужно отображать, в противном случае push-уведомление принимается всякий раз, когда происходит сообщение. Что вы, ребята, думаете об этом временном пути (нам, конечно, придется изменить это как можно скорее), это выполнимо (или я здесь тоже что-то упускаю).

Постскриптум Кто-нибудь может сказать, как Whatsapp и другие популярные приложения справляются с этим?

Большое спасибо за вашу помощь.

Ответы на вопрос(2)

Ваш ответ на вопрос