ios apns 没有一致地发送到设备

Posted

技术标签:

【中文标题】ios apns 没有一致地发送到设备【英文标题】:ios apns not sending consistently to devices 【发布时间】:2014-12-05 07:50:21 【问题描述】:

大家好!

上个月我的应用上的注册设备停止接收推送通知时,我开始遇到这个问题

起初我意识到这是因为 Apple 放弃了对 SSL v3 的支持,所以我执行了 git pull 的 pyapns 更新。

推送消息再次开始正常发送,但没有被接收。推送服务器日志返回一些格式错误的负载错误,但成功发送通知的发生率很低,有时是批量发送的。

重建推送证书后,推送消息开始按时发送,并成功发送,但只持续了几个小时。

截至目前,对我的服务器的直接推送通知测试请求甚至没有正确传送到测试设备,而几个小时前的情况并非如此。

这是我的设置:

    所有推送消息都通过 Resque 排队。

    实际推送负载的服务器是“pyapns”。

    推送服务器操作系统为 Ubuntu 14.04.1 LTS。

    在检查我的服务、Resque 和 pyapns 的日志后,我非常确定我已成功将有效负载发送到 Apple 推送服务器。没有来自 APNS 的格式错误的有效负载响应,但仍然没有消息。

    推送证书最近更新,正在被运行 pyapns 的服务器使用。

    快速查看服务器显示已安装 Entrust CA 根证书的副本(根据 TLS 连接的要求,specified by Apple)。

谁能帮我解决这个问题?谢谢!

【问题讨论】:

几小时后事情如何停止工作?你有什么改变吗 我没有改变任何东西,在看到我的设备正确接收推送消息几个小时后,我又进行了一轮测试。发生的事情是随后的测试在 pyapns twistd.log 上没有返回错误,但设备没有收到消息。 【参考方案1】:

你怎么样

我更新了我的推送服务器应用程序以使用 TLS。

PyAPNs 应该自动切换到 TLS 而无需任何进一步的配置。请参考PyAPNs TLS support,它也包含openssl测试命令:)

【讨论】:

哦,抱歉,我的意思是对最新的 pyapns 执行 git pull

以上是关于ios apns 没有一致地发送到设备的主要内容,如果未能解决你的问题,请参考以下文章

我们可以从 iOS 设备向 APNs 发送推送通知吗?

iOS - 从 APNS 重新发送 Apple 推送通知

iOS 直接向 APNS 发送请求,无需服务器

使用 Push-Sharp 库将 Json 发送到 APNS

iOS:从 AWS SNS 向 APNS 发送推送通知

为啥我需要 GCM 或 APN?