Comments 6
Ваша реализация
1) шлёт пуши синхронно
2) не обрабатывает протухшие токены
3) не вызывает Dispose для нескольких объектов, создаваемых в процессе работы с HttpClient и HttpWebRequest, что приводит к утечкам ресурсов. Б-га ради, купите уже ReSharper, он вам кучу косяков в коде выявит.
1) шлёт пуши синхронно
2) не обрабатывает протухшие токены
3) не вызывает Dispose для нескольких объектов, создаваемых в процессе работы с HttpClient и HttpWebRequest, что приводит к утечкам ресурсов. Б-га ради, купите уже ReSharper, он вам кучу косяков в коде выявит.
1) Так ведь это лишь метод отправки пушей, а сам метод вызывается асинхронно.
2) Протухшие токены там вряд ли будут, ведь мы отправляем пуш сразу после получения токена, а при следующем вызове этого метода будет получен новый токен.
3) Ну тут согласен, надо допилить чуток, спасибо.
2) Протухшие токены там вряд ли будут, ведь мы отправляем пуш сразу после получения токена, а при следующем вызове этого метода будет получен новый токен.
3) Ну тут согласен, надо допилить чуток, спасибо.
1) Так ведь это лишь метод отправки пушей, а сам метод вызывается асинхронно.У вас не просто не используется асинхронная обвязка HttpWebRequest, но ещё и происходит синхронное ожидание асинхронной операции с HttpClient: ReadAsStringAsync().Result; В конце 2014-го года не использовать async/await как-то странно.
2) Протухшие токены там вряд ли будут, ведь мы отправляем пуш сразу после получения токена, а при следующем вызове этого метода будет получен новый токен.Приложение с устройства удалили, код доступа невалиден. Не вижу обработки это ситуации.
1) По какой-то причине с async/await у нас пуши не отправлялись.
2) Опять же, это внешняя логика: если от пользователя приходит новый DeviceID (уникальный и постоянный для каждого устройства) и новый токен push-канала, то старый мы удаляем из базы.
2) Опять же, это внешняя логика: если от пользователя приходит новый DeviceID (уникальный и постоянный для каждого устройства) и новый токен push-канала, то старый мы удаляем из базы.
2) Опять же, это внешняя логика: если от пользователя приходит новый DeviceID (уникальный и постоянный для каждого устройства) и новый токен push-канала, то старый мы удаляем из базы.1) Вы вообще читаете? Приложение удалено. Новый никогда не придёт.
2) У вас пользователь только на одно устройство может получать пуши? Что за бред.
1) Да, действительно старые токены мы не удаляем. Видимо, нужно читать ответ от сервера и по нему определять, устаревший токен или нет.
2) Нет, у каждого пользователя может быть много устройств, но каждому устройству (DeviceID) может соответствовать только один токен push-канала и один пользователь (то есть если другой пользователь зайдёт с этого же устройства, то в БД к записи этого устройства будет приписан новый пользователь, тем самым старому пуши приходить на это устройство уже не будут).
2) Нет, у каждого пользователя может быть много устройств, но каждому устройству (DeviceID) может соответствовать только один токен push-канала и один пользователь (то есть если другой пользователь зайдёт с этого же устройства, то в БД к записи этого устройства будет приписан новый пользователь, тем самым старому пуши приходить на это устройство уже не будут).
Sign up to leave a comment.
Как отправлять push-уведомления на Windows Universal app