an APNS gesendet werden. Ich versuche APNS-Dienst auf meinem Python-REST-Server mit Hyper zu implementieren. Da APNS jetzt HTTP/2 (ALPN) Protokoll benötigen, konnte ich get_response()
von Hyper-Verbindung nicht. Es löst den folgenden Fehler aus.ALPN-Anfrage kann nicht mit Python 3.5 und Hyper
Traceback (most recent call last):
File "/usr/lib64/python3.5/dist-packages/django/core/handlers/exception.py", line 41, in inner
response = get_response(request)
File "/usr/lib64/python3.5/dist-packages/django/core/handlers/base.py", line 187, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/usr/lib64/python3.5/dist-packages/django/core/handlers/base.py", line 185, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/lib64/python3.5/dist-packages/django/views/decorators/csrf.py", line 58, in wrapped_view
return view_func(*args, **kwargs)
File "/usr/lib64/python3.5/dist-packages/django/views/generic/base.py", line 68, in view
return self.dispatch(request, *args, **kwargs)
File "/usr/lib/python3.5/dist-packages/rest_framework/views.py", line 489, in dispatch
response = self.handle_exception(exc)
File "/usr/lib/python3.5/dist-packages/rest_framework/views.py", line 449, in handle_exception
self.raise_uncaught_exception(exc)
File "/usr/lib/python3.5/dist-packages/rest_framework/views.py", line 486, in dispatch
response = handler(request, *args, **kwargs)
File "/usr/lib/python3.5/dist-packages/rest_framework/decorators.py", line 52, in handler
return func(*args, **kwargs)
File "/opt/vr-inspire/apns/views.py", line 137, in apns
resp = conn.get_response()
File "/usr/lib/python3.5/dist-packages/hyper/common/connection.py", line 129, in get_response
return self._conn.get_response(*args, **kwargs)
File "/usr/lib/python3.5/dist-packages/hyper/http11/connection.py", line 203, in get_response
self._sock.fill()
File "/usr/lib/python3.5/dist-packages/hyper/common/bufsocket.py", line 169, in fill
raise ConnectionResetError()
ConnectionResetError
Ich habe etwas Forschung, und es stellt sich heraus, ALPN erfordern OpenSSL 1.0.2. Ich kompilierte OpenSSL 1.0.2i und Python 3.5.1 von Quelle mit Bezug auf this Artikel.
Ich überprüft die SSL-Version mit import ssl print(ssl.OPENSSL_VERSION)
und gibt OpenSSL 1.0.2i 22 Sep 2016
zurück. Aber ssl.HAS_ALPN
zurück False.
Ich benutze Amazon Linux, wie kann ich ALPN verwenden, um Request zum APNS Server zu senden? Vielen Dank.