Жизненный цикл токена устройства с пользовательским контекстом для push-уведомлений
Я понимаю, что следующий вопрос не имеет прямого отношения к коду, но нам действительно нужны некоторые рекомендации по использованию push-уведомлений.
В настоящее время мы создаем приложение для чата, которое использует push-уведомления для информирования пользователей о наличии нового сообщения. В этом нет ничего нового и ничего особенного... у нас также есть код, который позволяет нам сделать это:
- При запуске устройства приложение запрашивает токены устройства
- Получает токен устройства
- Регистрируется на push-сервере
- Готово и все работает
Однако мой вопрос скорее о том, что делать, когда пользовательский контекст приложения изменяется. Например:
- Пользователь A входит в приложение, получает токен устройства, регистрирует устройство
- Пользователь А выходит из системы
- Пользователь B входит в приложение на том же устройстве, получает тот же токен устройства, снова регистрирует устройство, но устройство уже известно.
На данный момент у нас есть проблема с тем, что приложение все еще получает push-уведомления от пользователя A, потому что push-сервер считает, что это устройство все еще находится в контексте пользователя A.
Конечно, мы могли бы реализовать функцию отмены регистрации, которая удаляет устройство при выходе из системы, но что произойдет, если приложение будет удалено и повторно добавлено. Например:
- Пользователь A регистрируется и получает push-уведомления
- Пользователь B удаляет приложение на тех же устройствах
- Пользователь B снова загружает приложение и получает токен устройства
В этот момент устройство снова получает push-уведомления от пользователя A, хотя ни один пользователь даже не вошел в систему.
Мне кажется, что мы упускаем важный шаг в нашем мышлении, но мы не понимаем, что это такое... мы не можем запросить новый маркер устройства afaik.
заранее спасибо