Мне нужно нажать уведомления на десятки тысяч устройств iOS, которые установили мое приложение. Я пытаюсь сделать это с помощью PushSharp, но здесь мне не хватает фундаментальных понятий. Сначала я попытался запустить это в службе Windows, но не смог заставить его работать - получить нулевые ссылочные ошибки, исходящие из вызова _push.QueueNotification(). Затем я сделал именно то, что сделал документальный образец кода, и он работал:
PushService _push = new PushService();
_push.Events.OnNotificationSendFailure += new ChannelEvents.NotificationSendFailureDelegate(Events_OnNotificationSendFailure);
_push.Events.OnNotificationSent += new ChannelEvents.NotificationSentDelegate(Events_OnNotificationSent);
var cert = File.ReadAllBytes(HttpContext.Current.Server.MapPath("..pathtokeyfile.p12"));
_push.StartApplePushService(new ApplePushChannelSettings(false, cert, "certpwd"));
AppleNotification notification = NotificationFactory.Apple()
.ForDeviceToken(deviceToken)
.WithAlert(message)
.WithSound("default")
.WithBadge(badge);
_push.QueueNotification(notification);
_push.StopAllServices(true);
Проблема №1: Это работает отлично, и я вижу, что уведомление появляется на iPhone. Однако, поскольку он назывался Push-сервисом, я предположил, что он будет вести себя как услуга - это значит, я создаю экземпляр и вызываю _push.StartApplePushService() в службе Windows, возможно. И я подумал, что на самом деле очередь моих уведомлений, я мог бы сделать это в интерфейсе (приложение администратора, скажем):
PushService push = new PushService();
AppleNotification notification = NotificationFactory.Apple()
.ForDeviceToken(deviceToken)
.WithAlert(message)
.WithSound("default")
.WithBadge(badge);
push.QueueNotification(notification);
Очевидно (и, как я уже сказал), это не сработало - последняя строка продолжала бросать исключение с нулевой ссылкой.
У меня возникли проблемы с поиском какой-либо другой документации, которая бы показывала, как настроить это на основе сервиса/клиента (а не просто называть все сразу). Возможно ли, или я не могу понять, как использовать PushSharp?
Проблема №2: Кроме того, я не могу найти способ нацеливаться на многие токены устройства одновременно, не зацикливая их и не ставя в очередь уведомления по одному за раз. Это единственный способ или я тоже что-то упустил?
Спасибо заранее.