Как отладить, если сообщение прошло через службу push-уведомлений Apple?

Я экспериментирую со службой push-уведомлений Apple с node.js в качестве сервера. До сих пор у меня это работало, и когда это работает, оно работает так, как задумано.

Однако иногда сообщение не приходит. Я не уверен, что это естественно (может быть, у меня плохое соединение, и из-за этого сообщение не приходит), или это ошибка в моем коде. Ситуация действительно случайная. Иногда это получается, а иногда нет, хотя я не менял код или что-то еще.

Я использую node-apn (https://github.com/argon/node-apn), и, согласно консоли отладки, он регистрируется как успешный, по крайней мере, со стороны сервера. Вот отладочное сообщение:

apn Initialising connection +19s
apn Initialising module +1ms
apn Connection established +383ms
apn Sending notification +0ms
apn Socket drained +1ms
apn Socket writeable +0ms

Это сообщение появляется как при прохождении сообщения, так и при его отсутствии. Так что я думаю, что сам node-apn отлично справляется со своей работой. Это означает, что либо:

  1. Между моим сервером и push-сервером Apple что-то происходит
  2. Что-то происходит между push-сервером Apple и моим устройством iOS

Но я не знаю, как узнать, что происходит. Итак, я пытаюсь найти решение:

  1. Узнайте, регистрируется ли мое push-уведомление в APNS
  2. Узнайте, отправляет ли APNS все уведомления на мой iDevice

Кто-нибудь знает, как это сделать? Большое спасибо!


person Vlad    schedule 27.10.2012    source источник


Ответы (2)


Существует хорошо написанная техническая заметка от Apple о различных источниках проблем со службами push-уведомлений: http://developer.apple.com/library/ios/#technotes/tn2265/_index.html

person sebgie    schedule 27.10.2012

Используйте tcpdump для портов 2195, 2196 и 5223, когда данные проходят через них: http://support.apple.com/en-us/HT202944

Используйте Wireshark для чтения файлов дампа: http://redmine.streamco.org/projects/smartswitch-public/wiki/Debug_VoIP_call_with_Wireshark

person Henry H.    schedule 16.01.2015