Я пытаюсь запустить проект мультичата из примеров каналов django на сервере. Он работает локально на компьютере с Windows, но когда я помещаю его на сервер Linux и запускаю его с помощью runserver, он не работает:
./manage.py runserver
Затем, когда я вызываю веб-сайт, он отображается правильно, но как только JS отправляет ему запрос веб-сокета, я всегда получаю этот ответ:
[2016/08/02 14:35:48] HTTP GET /chat/stream/ 404 [0.04, 127.0.0.1:40186]
....(many lines of this)
Таким образом, запрос веб-сокета обрабатывается как HTTP-запрос. Ответ должен быть таким:
[2016/08/02 16:34:45] WebSocket CONNECT /chat/stream/ [127.0.0.1:60250]
Я понятия не имею, где это происходит не так. Маршрутизация http по сравнению с websocket, кажется, выполняется где-то глубоко внутри daphne/twisted/...
Настройки моего канала (если это вообще поможет):
CHANNEL_LAYERS = {
"default": {
"BACKEND": "asgi_redis.RedisChannelLayer",
"CONFIG": {
"hosts": [(redis_host, 62031)],
},
"ROUTING": "multichat.routing.channel_routing",
},
}
Перекрученная версия 16.2.0.
Любая помощь или подсказка, в каком направлении смотреть, очень ценятся.