Обработка нескольких уведомлений с помощью PushSharp для iOS и Android
Я реализовал службу Windows, которая запускается каждые 3 минуты и опрашивает базу данных для уведомлений, которые готовы к отправке. Я собираю их в список, определяю, является ли это уведомлением ios или android, а затем вызываю PushBroker (решение PushSharp включено как скомпилированное решение в мой проект решения). Затем я выполняю итерации элементов в списке для обработки следующим образом:
static void ProcessIOS(List<Client> IOS)
{
PushBroker push = new PushBroker();
push.OnNotificationSent += NotificationSent;
push.OnChannelException += ChannelException;
push.OnServiceException += ServiceException;
push.OnNotificationFailed += NotificationFailed;
push.OnDeviceSubscriptionExpired += DeviceSubscriptionExpired;
push.OnDeviceSubscriptionChanged += DeviceSubscriptionChanged;
push.OnChannelCreated += ChannelCreated;
push.OnChannelDestroyed += ChannelDestroyed;
foreach (var entry in IOS)
{
string dev = entry.Device_Id.ToString();
string load = entry.Push_Payload.ToString();
int count = entry.Unread_Count;
var appleCert = File.ReadAllBytes(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "../../../productionfile.p12"));
push.RegisterAppleService(new ApplePushChannelSettings(true, appleCert, "password")); //Extension method
push.QueueNotification(new AppleNotification()
.ForDeviceToken(dev)
.WithAlert(load)
.WithBadge(count));
}
}
Сообщения отправляются успешно, однако проблема, с которой я столкнулся, заключается в том, чтобы: 1. пытаться получить ответы, если сообщение было отправлено успешно или не удалось, причина сбоя и т. Д. ... это делегаты в коде pushsharp, чтобы я мог записать в журнал ответы на нашу базу данных. Для пояснения ... Мне нужно знать, с какой попытки ввода (deviceID) поступают сообщения об ошибках. Я не могу сказать по сгенерированным сообщениям от уведомляющих делегатов, так как данные не связаны с какой-либо конкретной попыткой доставки deviceid. 2. Я также хочу иметь возможность сохранять код pushsharp без изменений и вызывать методы из моего кода, чтобы уменьшить проблемы слияния при внесении каких-либо обновлений в код pushsharp в будущем. Какие-либо предложения? Если кто-нибудь может дать мне примеры использования ответов и делегатов для извлечения информации для каждой попытки отправки уведомления, я был бы признателен. благодарю вас.