Как преобразовать проект ASP.NET/PushSharp в Azure для отправки push-уведомлений?

Я использую ASP.NET и PushSharp для отправки push-уведомлений своим клиентам приложений iOS с помощью простого следующего кода (после настройки сертификата и т. д.):

//ASP.NET + PushSharp
AppleNotification notification = new AppleNotification(PushToken).WithAlert(message);
broker.QueueNotification<AppleNotification>(notification);

Это отлично работало на изолированных хостах с классическим IIS/ASP.NET, но теперь я перехожу к Windows Azure. Когда я пробую этот код в Windows Azure, уведомления иногда не отправляются, и помогает перезапуск веб-сайта (стандартный режим). Однако, поскольку это ненадежный подход, я решил перейти на службу Центра уведомлений Azure. Я создал хаб, загрузил свои сертификаты, начал писать код, но не смог найти эквивалент моего предыдущего кода. Мне не нужно рассылать сообщения всем пользователям, мне нужно отправить push-уведомление на одно устройство, учитывая, что у меня есть push-токен. Я просмотрел архитектуру APNS push-уведомлений Windows Azure ServiceBus, но ссылка, предоставленная в ответе, чрезвычайно запутана, и я не мог ее понять. Как я могу просто отправить сообщение на push-токен в Windows Azure? Должен ли я использовать центр уведомлений? (Я не использую виртуальную машину) Приветствуется любой простой подход, предпочтительнее чистый подход на основе ASP.NET/PushSharp, поскольку мне не нужно менять всю кодовую базу.


person Can Poyrazoğlu    schedule 18.02.2014    source источник


Ответы (1)


Я не уверен, что это за объект PushToken. Центры уведомлений работают не по модели обмена сообщениями «один к одному» (где вы должны идентифицировать каждого получателя сообщения, будь то по каналу, токену устройства или регистрационному идентификатору), а по тегу. основанная модель. Однако это не означает, что теги не могут быть уникальными для отдельных пользователей, и на самом деле вы можете использовать практически любой токен в качестве тега.

Это новая модель, в отличие от мобильных служб Azure или прямого использования APNS, поэтому вряд ли ее можно будет напрямую перенести из существующего кода. Но, на мой взгляд, модель концентраторов уведомлений проста, если вы понимаете теги. Он поддерживает собственные полезные данные (созданные сервером, который отправляет уведомления) и полезные данные шаблонов (где шаблон создается принимающим устройством и предоставляется концентраторам уведомлений во время регистрации, а затем параметры в шаблоне предоставляются сервером, когда он отправляет уведомления в шаблоны).

person Alan McBee    schedule 04.07.2014
comment
Ладно, я думаю, что Центр уведомлений — это излишество (и дороговато). Я выбрал классический ASP.NET и PushSharp. - person Can Poyrazoğlu; 05.07.2014
comment
Существует бесплатный уровень концентраторов уведомлений, который по-прежнему отправляет довольно много уведомлений. Базовый уровень составляет 20 долларов США в месяц при оплате по мере использования и около 16 долларов США в месяц при оплате за год. Для разработчиков-любителей это может быть дорого, но для малого бизнеса или большего размера это воровство. - person Alan McBee; 05.07.2014
comment
Да, может быть, но теперь я отправляю неограниченное количество бесплатных уведомлений, зачем переходить на дорогую систему концентраторов уведомлений, где мне нужно будет изучить новую систему и перенести свой рабочий код в эту систему? - person Can Poyrazoğlu; 05.07.2014
comment
Не для того, чтобы передумать, а потому, что другие могут посмотреть на это: это потому, что концентраторы уведомлений означают: а) вам никогда не придется беспокоиться о различиях между APNS, GCM, WNS, MPNS и тем, что Amazon делает для Kindles и т. д.; б) неограниченное масштабирование, если вам это нужно; c) автоматическая обработка регистраций устройств (включая удаление мертвых токенов и т. д.); г) SLA 99,9% в месяц. Поэтому. - person Alan McBee; 05.07.2014