• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

python - PyAPNS SSL3_WRITE_PENDING 错误

[复制链接]
菜鸟教程小白 发表于 2022-12-12 22:30:52 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

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

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

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



Best Answer-推荐答案


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

AFAIK 当您使用简单通知服务时,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 对象。

希望拉取请求将很快合并到 master(可能包括我的更改)。

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

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap