Я разрабатываю приложение, которое использует C2DM для получения push-уведомлений. Я реализовал всю схему C2DM (как клиент, так и сервер), и она работает нормально.
В настоящее время в моем приложении есть кнопка для начальной загрузки регистрации C2DM. При получении токена идентификатора регистрации от Google я вызываю веб-службу на своем сервере приложений, чтобы связать устройство с идентификатором регистрации.
Я собираюсь реализовать аутентификацию в своем приложении, и у меня есть несколько вопросов, связанных с обработкой регистрации C2DM.
- Клиентское приложение (например, Android) будет иметь экран входа в систему в качестве первого экрана, чтобы пользователь мог ввести учетные данные. Как только учетные данные будут проверены, я планирую вызвать регистрацию C2DM, чтобы пользователь был связан с токеном идентификатора регистрации. Это нормально? В более поздних запусках приложения я, вероятно, буду хранить учетные данные или какой-то токен, чтобы пользователю не нужно было вводить учетные данные снова. Должен ли я также запускать регистрацию C2DM при запуске приложения?
- Я знаю, что Google может в конечном итоге обновить регистрационный идентификатор. Является ли хорошей практикой регулярное обновление регистрационного идентификатора? Если да, то когда это должно быть уместно? Срок действия токена идентификатора регистрации истекает?
- Что происходит в редком случае десинхронизации регистрационного идентификатора между клиентом и сервером (например, клиенту приходит новый регистрационный идентификатор, в середине которого на сервере запускается новое событие со старым регистрационным идентификатором, затем регистрационный идентификатор поступает на сервер)? Будет ли Google обрабатывать эти случаи? Должен ли мой сервер приложений обрабатывать эти случаи?
- Что произойдет, если сервер недоступен, когда от Google поступает новый идентификатор регистрации? Должен ли я отступить и запланировать будильник, чтобы повторить попытку?
- Можете ли вы придумать какие-либо другие подводные камни с этим?