Отправка push-уведомления всем пользователям моего приложения (Windows Phone)

Мне нужно отправить push-уведомление всем пользователям моего приложения. Я понимаю, что мне нужен URI, который я получаю от каждого пользователя, чтобы отправить им сообщение.

поэтому я должен зарегистрировать событие ChannelUriUpdated и отправить URI на свой сервер. На моем сервере я должен хранить эти данные в базе данных и использовать список URI для отправки сообщения.

Я не уверен, что это идеальный метод для этого. Но если это так, как я узнаю, обновляется ли URI определенного устройства с моего сервера. Я не хочу хранить несколько URI в своей базе данных для каждого устройства.

Должен ли я также отправлять GUID устройства с уникальным URI?


person Ateik    schedule 26.03.2012    source источник


Ответы (3)


Когда MPNS возвращает push-URI, он идентифицирует уникальное «приложение в устройстве», т. е. каждому приложению, установленному на устройстве, которое запрашивает push-уведомления, присваивается другой URI.

Теперь я не несу ответственности за приложение WP7, только за часть веб-сервиса, но я думаю, что приложение должно перепроверять URI каждый раз, когда оно запускается. В этом случае вам следует обновить URI, который вы сохранили ранее, и поэтому вам следует сохранить идентификатор устройства, чтобы вы могли отслеживать и обновлять предыдущий канал.

Также обратите внимание на коды ответов, так как бывают ситуации, когда Вы должны прекратить отправку новых уведомлений, как описано здесь:

http://msdn.microsoft.com/en-us/library/ff941100(v=vs.92).aspx

person xautau    schedule 26.03.2012

Когда Uri устройства обновится, вы должны заменить старый Uri на сервере на новый. Итак, одно устройство - один Ури.

Если вам нужно отправлять уведомления всем пользователям без идентификации каждого и это требование не изменится в будущем - не сохраняйте GUID. Просто отправьте уведомления на сохраненные Uri и все.

person Ku6opr    schedule 26.03.2012
comment
Но в этом случае я буду хранить неиспользуемый URI в своей базе данных. Я попытался выключить телефон и снова включить. У меня другой URI. - person Ateik; 26.03.2012
comment
О, да. Забыл про первую часть вопроса. Итак, вы ответили на свой вопрос - вам нужно отправить телефон GUID, чтобы найти старого пользователя Uri в базе данных и соответствующим образом обновить его. - person Ku6opr; 26.03.2012
comment
Спасибо. так что я вижу, что нет другого способа сделать это. - person Ateik; 26.03.2012

Должен ли я также отправлять GUID устройства с уникальным URI?

Это то, что вам непонятно: у вас есть отношение «один ко многим» между GUID, которые уникальны для каждого телефона, и URI, которые не являются таковыми.

Вы должны хранить GUID как первичный ключ в своей базе данных, а URI как столбец. Всякий раз, когда вы вводите новый ключ, проверяйте, существует ли уже предоставленный GUID, и в этом случае вы вводите UPDATE вместо INSERT.

person Louis Kottmann    schedule 26.03.2012