用于Apple推送通知服务(APNS)的Python客户端

apns-client的Python项目详细描述


用于Apple Push Notification service (APNs)的python客户端。 检查documentation以了解如何使用它。

检查具有类似接口的客户机是否有Google Cloud Messaging

要求

  • six-python 2和3兼容库。
  • pyOpenSSL-openssl包装器。 标准网络后端需要。

标准库支持SSL transport。但是,不可能使用 它以字符串形式提供证书。我们在数据库中存储证书, 因为我们在许多芹菜加工机上处理不同的应用程序。肮脏的 解决方案是创建临时文件,但它不安全且速度慢。所以, 我们决定使用一个更好的openssl包装器,pyOpenSSL是 最容易处理。pyOpenSSL由标准网络按需加载 后端。如果您使用自己的后端,基于其他ssl实现, 那么您就不必安装pyOpenSSL

备选方案

many alternatives 可用。我们从pyapns开始 以及APNSWrapper。这个图书馆 在以下设计决策中有所不同:

  • 支持来自字符串的证书。我们不分发证书文件 在工作机上,它们在需要时从数据库中获取数据。这个 这种方法简化了部署、升级和维护。
  • 保持连接的持久性。ssl握手循环很慢。一次 连接已建立,它应至少保持打开几分钟, 等待下一批货。
  • 支持增强格式。苹果的开发人员设计了一个臭名昭著的 推送协议。他们把它升级到了增强版 可以检测批处理中的哪些消息失败。
  • clean pythonic api。不需要大量的类、长的异常列表等。
  • 不要硬代码验证,让apns失败。这个决定使图书馆 更能证明未来。

更改日志

v0.2
网络层变得可插入,使得基于gevent的实现 可能的。所有内容都经过重构,例如IO、多线程和SSL 现在按需加载和使用,允许您完全重写任何 客户的一部分。api在很大程度上是向后兼容的。IO相关 配置被移动到传输层,异常处理有点 更详细。客户端使用标准日志来发送细粒度 调试消息。
v0.1
第一个简单实现,使用原始套接字和pyOpenSSL进行硬连接。 它在gevent或任何其他green环境中都不工作。

支架

apns客户端由Sardar Yumatov创建, 如果您发现任何错误或需要帮助,请与我联系。如果需要全功能推送通知服务,请联系Getlogic 适用于所有流行平台。您可以在APNs Bitbucket page上查看未解决的问题。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Eclipse内存分析器(MAT):不显示当前正在运行的进程   java Apache Velocity:转义字符不能作为关联数组键用于PHP   不截断零的java格式十进制输出   在另一个类文件中调用时返回空值的java getter   java集合获取连接   java解析json使用Gson登录系统应用程序强制关闭   java DelferredResult带有两个请求的ajax请求   java可降低功耗,同时应使用无线   java BoxLayout无法共享错误?   java如何使用计时器制作闹钟   java使用OAuth2保护RESTWeb服务:一般原则   java在一个jframe上显示多个图像和按钮