Каналы Websocket автоматически закрываются после одного сообщения

Я разрабатываю веб-сервер на основе Django, который интегрирует websocket для визуализации данных в реальном времени (мой веб-сервер считывает значения из PLC через OPCUA и отображает их в реальном времени на веб-странице).

Сервер работает правильно в режиме разработки , в то время как в режиме производства вебсокет открывается и закрывается немедленно без ошибок .

Для развертывания я использовал Docker, Nginx в качестве прокси и Daphne для обработки запросов wsgi и asgi.

Это мой первый раз, когда я создаю docker для сервера django, так что я могу что-то сделать неправильно.

Моя конфигурация:

Django - settings.py

WSGI_APPLICATION = 'LCD_Data_Management.wsgi.application'
ASGI_APPLICATION = 'LCD_Data_Management.asgi.application'

CHANNEL_LAYERS = {
    'default': {
        "BACKEND": "channels_redis.core.RedisChannelLayer",
        "CONFIG": {
                     "hosts": [("127.0.0.1", 8000)],
                  },
    },
}

Django - asgi.py

import os

import django
from django.core.asgi import get_asgi_application
from channels.auth import AuthMiddlewareStack
from channels.routing import ProtocolTypeRouter, URLRouter

from myApp.routing import ws_urlpatterns

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myProject.settings')
django.setup()

application = ProtocolTypeRouter({
    'http': get_asgi_application(),
    'websocket': AuthMiddlewareStack(URLRouter(ws_urlpatterns))
})

Nginx - default.config

server {
    listen 8080;

    location /static {
        alias /vol/static;
    }

    location / {
        try_files $uri @proxy_to_app;
    }
    location @proxy_to_app {
        proxy_pass http://app:8000;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Host $server_name;
    }
}

Docker - docker-compose.yml

version: '3.9'

services:
  db:
    image: postgres
    volumes:
      - ./data/db:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=postgres
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres

  app:
    build:
      context: .
    volumes:
      - static_data:/vol/web
    environment:
      - SECRET_KEY=samplesecretkey123
      - ALLOWED_HOST=localhost:8080,127.0.0.1:8080
      - POSTGRES_NAME=postgres
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
      - DEBUG=0
    depends_on:
      - db

  proxy:
    build:
      context: ./proxy
    volumes:
      - static_data:/vol/static
    ports:
      - "8080:8080"
    depends_on:
      - app

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