2016-08-02 4 views
2

서버의 django channels-examples에서 multichat 프로젝트를 실행하려고합니다. 그것은 윈도우 머신에서 로컬로 작동하지만 난의 runserver와 리눅스 서버에이를 넣고 그것을 시작할 때 그렇지 않습니다 다음 JS 즉시 다음django 채널 websocket 연결이 작동하지 않습니다.

./manage.py runserver 

을 나는 웹 사이트를 호출 할 때, 제대로 표시되어 있지만 난 항상이 reponse를 얻을 요청 웹 소켓을 보냅니다

[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의 라우팅은 다프네 내부 어딘가에 깊은 할 것으로 보인다/트위스트/...

내 채널 설정 (즉, 전혀 도움이있는 경우)은 다음과 같습니다

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

트위스트 버전은 16.2입니다 .0.

어떤 방향으로 어떤 도움말이나 힌트를 주시면 감사하겠습니다.

답변

0

몇 가지 질문 마음에 와서/제안 :

개발 또는 생산을위한 리눅스 서버인가? 나는. HTTP 서버가 있거나 평범한 DJANGO가 실행 중입니까? (전자의 경우는 "./manage의 runserver"로 시작하지 않습니다.)

"나는 웹 사이트를 호출 할 때 다음, 올바르게 표시됩니다 ..."

인가이 요청에 대한 포트 번호가 다르기 때문에? 40186 v 60250.

예를 들어 404가 표시됩니다. url을 찾을 수 없습니다. 이것은 DJANGO의 HTTP 서버 응답 중 하나 일 수 있습니다.

+0

나는 이것을 runserver와 함께 실행하고있다. 그러나 django-channels은 runserver 명령을 daphne과 worker를 시작하는 runserver 명령으로 겹쳐 쓴다. 포트가 실제로 문제 일 수 있습니다. 실패한 요청마다 다른 포트가 표시됩니다. 또한 액세스 할 수없는 포트가 있습니다. 그러나 나는 그 포트 번호가 어디에서 오는 것인지 전혀 모른다. –

+0

실제로 표시된 포트 번호는 의미가 없어야합니다.이 요청은 다음과 같이 작동합니다 : [2016/08/03 07:47:51] HTTP /static/css/style.css 200 [0.02, 127.0.0.1:53294] 문제가 있습니다. 그것은 http로 ws 요청을 처리하는 것으로 보인다. –

0

전체 로그를 게시 할 수 있습니까?

는 이러한 실패에 다시 시작하는 더 나은 방법으로이 작업을 수행 다프네하고 실행 노동자와 관리자 등의

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

사용 무언가를 서버를 실행 해보십시오.

관련 문제