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

apns-clerk的Python项目详细描述


用于Apple Push Notification service (APNs)的python客户端。

这个项目是从apns客户机派生的,因为ssl握手有一个很小但很严重的问题,使得包不可用。 暂时请检查APNS客户端的documentation

要求

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

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

更改日志

v0.2.0
增加了对在一个apns连接期间发送不同负载的多个推送的支持,谢谢jon snyder!
v0.1.2
删除了导致python出现问题的不需要的非ascii字符<;3
v0.1.1
从打开的APNS客户端请求导入更改。谢谢杰森·斯帕福德、李哲和尼图·詹。
v0.1
从APNS客户端分叉并修复了由Apple的SSLv3不推荐引起的SSL握手错误

备选方案

many alternatives可用。 此库在以下设计决策方面有所不同:

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

待办事项

  • [todo]为APNS职员提供自己的文档
  • [todo]以前工作的正确属性

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

推荐PyPI第三方库


热门话题
我们应该在测试java代码时模拟黄瓜测试吗。我们应该在多大程度上使用黄瓜?   Hibernate Weblogic 10.3.4 java。lang.NoSuchMethodError:javax/persistence/spi/PersistenceUnitInfo。getValidationMode()Ljavax/persistence/ValidationMode;   java如何在main()中访问私有静态实例变量   java JMockit无法模拟类的公共final字段   java是否可以返回特定控制器操作的输出(html)?   java如何返回正确类型的列表?   rest-OpenUI/Swagger-java-to-API   java组织。springframework。豆。工厂NoSuchBeanDefinitionException或加载ApplicationContext失败   java使用POST将参数从JSP发送到Servlet   java如何监听特定的按钮按下和主视图用户交互?   java如何让gradle在本地maven repo中覆盖库?   如何在Java中“合并”两个URI?   java如何制作一个方法来移动数组中的字符?   使用来自java的命令启动powershell窗口   java垃圾收集器和匿名类   java如何为CellTable(GWT 2.4)中的ImageResourceCell创建PanelPopup?