2016-08-02 2 views
2

Я пытаюсь запустить проект multichat из каналов django-примеров на сервере. Она работает локально на машине окна, но когда я ставлю это на сервере Linux и запустить его с runserver он не делает:django channels websocket connect not working

./manage.py runserver 

Затем, когда я вызываю на веб-сайте, показано правильно, но как только JS направляет его WebSocket просить я всегда получаю эту réponse:

[2016/08/02 14:35:48] HTTP GET /chat/stream/ 404 [0.04, 127.0.0.1:40186] 
....(many lines of this) 

так запрос WebSocket обрабатывается как запрос HTTP. Ответ должен быть таким:

[2016/08/02 16:34:45] WebSocket CONNECT /chat/stream/ [127.0.0.1:60250] 

У меня нет ни малейшего представления, где это происходит не так. Маршрутизация HTTP по сравнению с WebSocket, кажется, делается где-то глубоко внутри Дафни/скрученный/...

настройки Мои канальные (если это какой-либо помощи вообще):

CHANNEL_LAYERS = { 
    "default": { 
     "BACKEND": "asgi_redis.RedisChannelLayer", 
     "CONFIG": { 
      "hosts": [(redis_host, 62031)], 
     }, 
     "ROUTING": "multichat.routing.channel_routing", 
    }, 
} 

Twisted версия 16,2 +0,0.

Любая помощь или подсказка в каком направлении смотреть очень ценится.

ответ

0

Некоторые вопросы/предложения, которые приходят на ум:

ли линукс сервер для разработки или производства? То есть Есть ли HTTP-сервер или просто простой DJANGO? (В первом случае вы не начать с «./manage runserver».)

„Тогда, когда я вызываю на сайте показано, правильно ...“

Это потому что номера портов различаются для запросов? 40186 против 60250.

Вы получаете 404, например. URL не найден. Это может быть либо ответ HTTP-сервера от DJANGO.

+0

Я запускаю это с помощью сервера-запуска, но django-каналы переопределяют команду сервера запуска с ее собственным (который запускает дафни и рабочие). Порт действительно может быть проблемой - каждый неудачный запрос показывает другой порт - и те порты, к которым я не могу получить доступ. Но я не знаю, откуда эти номера портов. –

+0

Фактически отображаемые номера портов должны быть безмерными: как работает этот запрос: [2016/08/03 07:47:51] HTTP GET /static/css/style.css 200 [0.02, 127.0.0.1:53294] Проблема похоже, что он обрабатывает запрос ws как http –

0

Вы можете публиковать полный журнал?

Попробуйте запустить сервер с Дафни и запустить рабочий

daphne multichat.asgi:channel_layer --port 80 --bind 0.0.0.0 -v2 
python manage.py runworker -v2 

использовать что-то вроде супервизора, чтобы сделать это лучший способ, чтобы перезагрузить их на провал.