Я пытаюсь отправить push-уведомление MDM на iPad, используя рабочий сервер APN. Однако Push Sharp сообщает, что уведомление не удалось, так как идентификатор равен 1. Следующий код из базы кода PushSharp иллюстрирует, как он приходит к такому выводу...
//We now expect apple to close the connection on us anyway, so let's try and close things
// up here as well to get a head start
//Hopefully this way we have less messages written to the stream that we have to requeue
try { stream.Close(); stream.Dispose(); }
catch { }
//Get the enhanced format response
// byte 0 is always '1', byte 1 is the status, bytes 2,3,4,5 are the identifier of the notification
var identifier = IPAddress.NetworkToHostOrder(BitConverter.ToInt32(readBuffer, 2));
int failedNotificationIndex = -1;
SentNotification failedNotification = null;
//Try and find the failed notification in our sent list
for (int i = 0; i < sentNotifications.Count; i++)
{
var n = sentNotifications[i];
if (n.Identifier.Equals(identifier))
{
failedNotificationIndex = i;
failedNotification = n;
break;
}
}
По сути, после записи полезной нагрузки в поток, он пытается закрыть соединение, во время чего ожидает ответа от службы APN, которую, я думаю, он называет идентификатором уведомления.
Я подключил устройство к утилите настройки устройств iPhone, но в консоли ничего не появляется, поэтому я предполагаю, что оно никогда не получает это уведомление.
Мои вопросы...
- Что это за идентификатор, который он ожидает?
- Есть ли что-то, что я делаю неправильно?
Устройство работает под управлением iOS 6. Структура полезной нагрузки выглядит следующим образом...
{"aps":{},"mdm":"80369651-5802-40A2-A0AE-FCCF02F99589"}
Значения в возвращаемом byte[] из 6 байтов следующие: 8,8,0,0,0,1