如果消息通过Apple推送通知服务如何调试?

时间:2012-10-27 21:26:44

标签: ios node.js push-notification apple-push-notifications

我正在尝试使用node.js作为服务器的Apple推送通知服务。到目前为止,我已经让它工作,当它工作时,它按预期工作。

但是,有时消息不会到达。我不确定这是否自然(也许我的连接不良而且消息因此没有通过),或者如果它是我的代码中的错误。情况非常随机。有时它会通过,有时它不会,即使我没有更改代码或任何东西。

我正在使用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. 我的服务器和苹果推送服务器之间发生了一些事情
  2. 苹果推送服务器和我的iOS设备之间发生了一些事情
  3. 但我不知道如何找出正在发生的事情。所以我想找到的是一个解决方案:

    1. 查看我的推送通知是否由APNS注册
    2. 查看APNS是否将所有通知发送到我的iDevice
    3. 任何人都知道如何做到这一点?非常感谢你!

2 个答案:

答案 0 :(得分:5)

Apple提供了一份精心编写的技术说明,内容涉及推送通知服务的不同问题来源: http://developer.apple.com/library/ios/#technotes/tn2265/_index.html

答案 1 :(得分:0)

在端口2195,2196和5223上使用tcpdump,因为数据通过它们: http://support.apple.com/en-us/HT202944

使用Wireshark读取转储文件: http://redmine.streamco.org/projects/smartswitch-public/wiki/Debug_VoIP_call_with_Wireshark