与Django的APNS问题

KVI*_*ISH 3 django apple-push-notifications

我正在使用以下项目在我的项目中启用APNS:

https://github.com/stephenmuss/django-ios-notifications

我可以在我的生产应用程序上发送和接收推送通知,但是沙箱apns有一些我无法解决的奇怪问题.它始终没有连接到推送服务.当我手动做_connect()APNService或者FeedbackService班,我得到以下错误:

  File "/Users/MyUser/git/prod/django/ios_notifications/models.py", line 56, in _connect
    self.connection.do_handshake()
Error: [('SSL routines', 'SSL3_READ_BYTES', 'sslv3 alert handshake failure')]
Run Code Online (Sandbox Code Playgroud)

我尝试多次重新创建APN证书并不断获得相同的错误.还有什么我想念的吗?

我使用端点gateway.push.apple.comgateway.sandbox.push.apple.com连接到服务.还有什么我应该考虑的吗?我看过以下内容:

Apns php错误"无法连接到APNS:110连接超时."

使用OpenSSL将PKCS#12证书转换为PEM

使用PHP for iPhone APNS时出错

KVI*_*ISH 5

事实证明Apple在开发过程中将ssl上下文从SSL3更改为TLSv1.他们最终会在生产中做到这一点(不确定何时).以下链接显示我的拉取请求已被上述项目接受:

https://github.com/stephenmuss/django-ios-notifications/commit/879d589c032b935ab2921b099fd3286440bc174e

基本上,OpenSSL.SSL.TLSv1_METHOD如果你在其他语言中使用python或类似的东西,请使用它.

虽然OpenSSL.SSL.SSLv3_METHOD在生产中有效,但在不久的将来可能无法使用.OpenSSL.SSL.TLSv1_METHOD从事生产和开发.

UPDATE

由于贵宾犬的缺陷,Apple将于2014年10月29日删除生产中的SSL 3.0支持.

https://developer.apple.com/news/?id=10222014a