APN 没有传递我的某些通知

Posted

技术标签:

【中文标题】APN 没有传递我的某些通知【英文标题】:APN does not deliver some of my notifications 【发布时间】:2011-01-12 11:46:23 【问题描述】:

我有两台应用程序服务器连接到生产 Apple 推送网关 (gateway.push.apple.com),它们都使用相同的推送证书向同一个应用程序发送通知。我正在使用 javapns 向 APN 发送通知。

来自其中一台服务器的通知(几乎)始终被 APN 忽略:日志显示通知已发送到正确的 PushID,但我的 3 台测试设备中只有一台能够实际显示通知。同时,当从我的其他应用程序服务器发送通知时,通知几乎立即被所有三个设备可视化。被 APN 忽略的应用服务器正在运行 Debian,未被忽略的应用服务器正在运行 Windows。

到目前为止,我已经验证: * 两个应用服务器 (AS) 运行相同的发送代码,具有相同的设置。 * 两个 AS 使用相同的推送证书。 * 两个 AS 都发送到相同的设备令牌。 * 两个 AS 实际上都在发送,在某种意义上没有异常写入连接我 APN 服务的套接字流。 * 两个 AS 使用相同的推送网关 (gateway.push.apple.com:2195) * 两个AS都没有连接到推送网关的时间过长(最后一条消息后最多10秒)。由于负载的原因,他们两个都不太频繁地连接。 * 所有测试设备都运行同一个启用推送的应用程序。 * 两台服务器都安装了新的 Entrust 2048 位证书,Apple 宣布该证书将于 2010 年 12 月 22 日生效。在被忽略的服务器上,我对证书目录进行了 ls 验证。另一方面 - 我检查了 Windows Internet 属性。 * 被忽略的服务器在服务器场中,连续运行了 2 个月。未被忽略的服务器在我的开发机器上,经常启动和停止。 * 两台服务器过去都运行良好,并且它们的通知 - APN 尊重直到 12 月 25 日或 26 日。

【问题讨论】:

【参考方案1】:

JavaPNS 最近更新到 2.0,并修复了截至发布日期之前报告的所有问题。在过去的几周里,该库获得了显着的可靠性和错误处理改进。如果您仍然遇到 JavaPNS 问题,我建议您在 http://code.google.com/p/javapns/ 上尝试使用 2.0 版。

【讨论】:

以上是关于APN 没有传递我的某些通知的主要内容,如果未能解决你的问题,请参考以下文章

仅在应用程序处于后台时隐藏 APN 通知?

APN 自定义通知声音问题

apn 证书已过期,推送通知不再起作用

使用 apn_on_rails 记录 Apple 推送通知服务器的响应?

取消订阅 Apple 推送通知服务

Apple 向特定用户推送通知