Cuando intenté ejecutar la aplicación Django usando sslservercomo se muestra a continuación,
python manage.py runsslserver
Errores:
Rastrear:
Validating models...
System check identified no issues (0 silenced).
November 08, 2019 - 11:17:26
Django version 2.0.7, using settings 'dashboard_channels.settings'
Starting development server at https://127.0.0.1:8000/
Using SSL certificate: \lib\site-packages\sslserver\certs\development.crt
Using SSL key: \lib\site-packages\sslserver\certs\development.key
Quit the server with CTRL-BREAK.
[08/Nov/2019 11:18:33] "GET / HTTP/1.1" 200 1299
[08/Nov/2019 11:18:34] "GET / HTTP/1.1" 200 1299
[08/Nov/2019 11:18:35] "GET /static/js/jquery.js HTTP/1.1" 200 270575
Not Found: /ws/home
[08/Nov/2019 11:18:36] "GET /ws/home HTTP/1.1" 404 2134
Consola del navegador:
(index):31 WebSocket connection to 'wss://127.0.0.1:8000/ws/home' failed: Error during WebSocket handshake: Unexpected response code: 404
(index):41 error Event
(index):44 close CloseEvent
Código:
Javascript:
var loc = window.location;
var wsStart = 'ws://';
if (loc.protocol == 'https:') {
wsStart = 'wss://'
}
var endpoint = wsStart + loc.host + '/ws/home';
var socket = new WebSocket(endpoint);
Funciona bien con el python manage.py runservercomando, significa httpque funciona pero no con https.
Cómo resolver este problema? (¿Cómo depurar para solucionar este problema?)
¿Hay alguna otra forma de implementar WebSockets en el httpsportal?
Todavía enfrenta este problema. Alguien puede ayudarme porfavor?
De todos modos, esto es para fines de prueba, finalmente, necesito implementarlo en Apache2.4 en la máquina del servidor de Windows. Donde ya lo configuré httpspero no para los sockets web.

http.CHANNEL_LAYERSse configuró y funciona totalmente bien conhttp. ¿Cómo correrhttps?Respuestas:
Encontré la respuesta, el
runservercomando detecta correctamente elasgi.pyarchivo y ejecuta la aplicación de canales Django en WebSockets usando daphne. De alguna manerarunsslserverno está haciendo el mismo trabajo, está ejecutando elwsgi.pyarchivo en lugar delasgi.pyarchivo.Después de leer diferentes enfoques, sé que podemos manejar la
HTTPSsolicitud utilizando nuestro servidor de desarrollo normal (es decir, usando unwsgi.pyarchivo) y lawsssolicitud usandoDaphne(es decir, usando unasgi.pyarchivo).Daphne era un servidor oficialmente diseñado para manejar canales django (construido en la parte superior del módulo retorcido).
Entonces, finalmente, necesitamos ejecutar dos servidores para manejar
httpsy porwssseparado.Podemos usar los mismos certificados SSL utilizados
runsslserverpara las pruebas.Finalmente, en JavaScript:
Espero que esto ahorre tiempo a alguien.
fuente