gpt4 book ai didi

python - PyAPNS SSL3_WRITE_PENDING 错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:49:06 24 4
gpt4 key购买 nike

我在我的应用程序演示中使用 PyAPNS 模块和 Bottle 框架向所有已注册的设备发送推送通知。一开始一切正常,我遵循了 PyAPNS 手册。但是一段时间后,我的服务在服务器后台运行,我开始收到错误:

SSLError: [Errno 1] _ssl.c:1217: error:1409F07F:SSL routines:SSL3_WRITE_PENDING:bad write retry

重启服务后一切正常。我该怎么办?或者我应该如何在后台运行这样的服务? (现在我只是在另一个屏幕上运行它)

最佳答案

我在使用这个库时遇到了和你一样的问题(我假设你实际上使用的是 https://github.com/simonwhitaker/PyAPNs ,这就是我正在使用的。那里至少有一个名称相似的库,但我认为您不会使用它)。

据我所知,当您使用简单的通知服务时,APNS 服务器可能会因以下原因挂断您:使用不正确的 token 、请求格式错误等。或者,如果您的网络连接中断,您的连接可能会中断或者您。 PyAPNS 代码现在不能非常优雅地处理这样的挂断,它会尝试重新使用套接字,即使它已经关闭。我看到 SSL3_WRITE_PENDING 错误的经验是,在 PyAPNS 尝试重新使用套接字之前,我总是会在套接字上看到诸如“错误:[Errno 110] 连接超时”之类的错误,然后我会收到 SSL3_WRITE_PENDING 错误。

如果您看到服务器在您身上挂起并且您想知道它为什么这样做,使用增强版的 APNS 会有所帮助,这样服务器就会写回有关您做错了什么的信息。

碰巧,目前有一个拉取请求 (https://github.com/simonwhitaker/PyAPNs/pull/23/files),它既移动 PyAPNS 以使用增强的 APNS 并更优雅地处理断开连接。您会看到我对该拉取请求发表了评论,并创建了我自己的 PyAPNS 分支,它以最适合我的用例的方式处理断开连接。

因此,您可以使用拉取请求中的代码来找出 APNS 服务器挂断您的原因。和/或您可以使用它来简化故障恢复,这样您只需在抛出异常时重试发送,而不必重新创建 APNS 对象。

希望 pull request 能尽快合并到 master 中(可能也包括我的更改)。

关于python - PyAPNS SSL3_WRITE_PENDING 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12042932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com