Почему он не может найти url

Я пытаюсь настроить каналы для нашего приложения, но мне кажется, что у меня что-то не получается.

Я попробовал следовать руководству youtuber's tutorial наряду с официальным. Все шло хорошо, пока я не сделал первый запрос ws, который привел к следующей ошибке

backend:

Not Found: /ws/live

frontend:

VM160:4 WebSocket connection to 'ws://localhost:83/ws/live/' failed: 

Из-за других зависимостей, я должен использовать Django 2.2, поэтому я думаю, что я где-то напортачил, но не знаю где.

вот код

asgi.py:

import os

import django
from channels.http import AsgiHandler
from channels.routing import ProtocolTypeRouter

from channels.auth import AuthMiddlewareStack
from channels.routing import ProtocolTypeRouter, URLRouter


import homepage.routing
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myapp.settings')
django.setup()

application = ProtocolTypeRouter({
  "http": AsgiHandler(),
  "websocket": AuthMiddlewareStack(
        URLRouter(
            homepage.routing.websocket_urlpatterns
        )
    ),
})

routing.py

from django.urls import path
from .consumers import WSConsumer

websocket_urlpatterns = [
    path('ws/live/', WSConsumer.as_asgi())
]  

consumers.py

import json
from random import randint
from time import sleep
from channels.generic.websocket import WebsocketConsumer


class WSConsumer(WebsocketConsumer):
    def connect(self):
        self.accept
        print('accepted')
    def disconnect(self, close_code):
        print('closed')

docker-compose.yml

version: "3"

networks:
  data-net:
    driver: bridge
  http:
    driver: bridge
  backend:
    driver: bridge

services:
  db-0:
    image: "bitnami/postgresql-repmgr:11"
    env_file:
      - ".env"
    restart: unless-stopped
    shm_size: "20gb"
    networks:
      - data-net
    volumes:
      - "postgresql_data:/bitnami/postgresql"
  web:
    build: .
    command: bash -c "python manage.py migrate && python manage.py dbr && gunicorn myapp.asgi:application --timeout 60 -w 20 -b :8000 --reload -k uvicorn.workers.UvicornWorker"
    container_name: myapp
    volumes:
      - .:/app
    expose:
      - "8000"
    depends_on:
      - db-0
    env_file:
      - ".env"
    links:
      - db-0:db-0
      - redis:redis
    networks:
      - data-net
      - http
      - backend
    restart: unless-stopped
    shm_size: "20gb"
  celery:
    restart: unless-stopped
    build: .
    env_file:
      - ".env"
    command: bash -c "celery -A celery_tasks worker -l info"
    volumes:
      - .:/app
    depends_on:
      - db-0
      - beat
    links:
      - db-0:db-0
      - redis:redis
      - beat:beat
    networks:
      - data-net
      - backend
  beat:
    restart: unless-stopped
    build: .
    env_file:
      - ".env"
    command: bash -c "celery -A celery_tasks beat -l info"
    volumes:
      - .:/app
    depends_on:
      - redis
    links:
      - redis:redis
    networks:
      - backend
      - data-net
  redis:
    restart: unless-stopped
    image: redis:latest
    expose:
      - "6379"
    networks:
      - backend
  nginx:
    restart: unless-stopped
    build: ./nginx/
    ports:
      - "84:443"
      - "83:80"
    volumes:
      - .:/app
    links:
      - web:web
    networks:
      - http

volumes:
  datael:
    driver: local
  postgresql_data:
    driver: local

Структура проекта:

├── docker-compose.yml
├── Dockerfile
├── homepage
│   ├── admin.py
│   ├── aggregators.py
│   ├── apps.py
│   ├── consumers.py
│   ├── forms.py
│   ├── helpers.py
│   ├── __init__.py
│   ├── models.py
│   ├── routing.py
│   ├── tasks.py
│   ├── templatetags
│   ├── tests
│   ├── urls.py
│   └── views.py
├── Makefile
├── manage.py
├── nginx
│   ├── Dockerfile
│   └── sites-enabled
│       └── django.conf
├── pull_request_template.md
├── pylama.ini
├── pytest.ini
├── static
├── tasks.log
├── templates
└── myapp
    ├── asgi.py
    ├── config.py
    ├── __init__.py
    ├── __pycache__
    ├── settings.py
    ├── slack_block.py
    ├── urls.py
    └── wsgi.py

urls.py:

Вернуться на верх