Windows Phone 8 push-уведомление push-канал всегда создает новый канал
Я хотел проверить правильность моей реализации push-уведомлений.
Каждый раз, когда я открываю свое приложение (на самом деле я регистрирую push-канал только на определенной странице, поэтомуКаждый раз, когда я возвращаюсь с этой страницы назад), создается новый URI push-канала, который я сохраняю в своей базе данных мобильных сервисов для отправки push-уведомлений. Это неМне кажется это правильным, так как каждый раз, когда приложение / страница открывается, генерируется новый URI push-канала, и поэтому список URI канала просто растет и увеличивается для каждого устройства, которое использует мое приложение. Я'Предположим, что вы создаете push-канал, сохраняете URI канала и при необходимости добавляете к нему канал. Я отмечу здесь, что я использую необработанные push-уведомления.
Я понимаю, что пуш каналы истекают очень часто, но для меня этоЭто происходит каждый раз, когда я возвращаюсь из приложения / страницы, и поэтому, когда вызывается onNavigateTo, я нахожу канал push, который существует, и всегда создается новый URI канала. Это правильно?
Мой код выглядит следующим образом:
защищенное переопределение void OnNavigatedTo (NavigationEventArgs e) {registerPushChannel (); }
private void registerPushChannel()
{
// The name of our push channel.
string channelName = "RawSampleChannel";
// Try to find the push channel.
pushChannel = HttpNotificationChannel.Find(channelName);
// If the channel was not found, then create a new connection to the push service.
if (pushChannel == null)
{
pushChannel = new HttpNotificationChannel(channelName);
// Register for all the events before attempting to open the channel.
pushChannel.ChannelUriUpdated += new EventHandler(PushChannel_ChannelUriUpdated);
pushChannel.ErrorOccurred += new EventHandler(PushChannel_ErrorOccurred);
pushChannel.HttpNotificationReceived += new EventHandler(PushChannel_HttpNotificationReceived);
pushChannel.Open();
}
else
{
// The channel was already open, so just register for all the events.
pushChannel.ChannelUriUpdated += new EventHandler(PushChannel_ChannelUriUpdated);
pushChannel.ErrorOccurred += new EventHandler(PushChannel_ErrorOccurred);
pushChannel.HttpNotificationReceived += new EventHandler(PushChannel_HttpNotificationReceived);
// code which passes the new channel URI back to my web service
}
}
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
pushChannel.Close();
}
Таким образом, чтобы уточнить, приложение открыто и push-канал зарегистрирован, и канал uri сохранен в моем веб-сервисе. Затем веб-служба отправляет уведомления на канал URI. Когда я выхожу из приложения или страницы и возвращаюсь к нему, канал push-уведомлений обнаруживается, но создается новый канал URI, который я снова сохраняю в своем веб-сервисе. Моя таблица каналов фактически продолжает расти и расти.
Так это то, как он должен работать с постоянно генерируемыми URI новых каналов? Это как бы нене имеет смысла для меня. Я'я не уверен, как работают тосты и уведомления, но яПредположим, что URI канала должен быть статическим, когда приложение закрывается, чтобы продолжать получать уведомления, пока приложение закрыто, но, возможно, это может быть функциональность bindtotoast и bindtotile и так далее.я делаю это правильно, потому что этоs делать с необработанными уведомлениями.