Приложение Django channels chat async не работает на heroku, но отлично работает в локальной среде и не встречает ошибок в логах heroku

Я новичок в каналах и я перепробовал все возможные решения, чтобы заставить его работать, но мое приложение чата не работает на heroku, но прекрасно работает в локальной среде. Мои другие приложения для блога и истории работают нормально как в локальной среде, так и на heroku, я столкнулся с этой проблемой только с приложением чата. Вот файл settings.py

ASGI_APPLICATION = 'core.routing.application'


DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'

CHANNEL_LAYERS = {
    "default": {
        "BACKEND": "channels.layers.InMemoryChannelLayer",
        # "CONFIG": {
        #     "hosts": [('127.0.0.1', 6379)]
        # }
    }
}

routing.py

from django.urls import re_path
from . import consumers

websocket_urlpatterns = [
    re_path(r'ws/chat/(?P<room_name>\w+)/$',
            consumers.ChatRoomConsumer.as_asgi()),
]

asgi.py

import os

from django.core.asgi import get_asgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE','core.settings')

application = get_asgi_application()

consumers.py

import json

from channels.generic.websocket import AsyncWebsocketConsumer

class ChatRoomConsumer(AsyncWebsocketConsumer): async def connect(self): self.room_name = self.scope['url_route']['kwargs']['room_name']. self.room_group_name = 'chat_%s' % self.room_name

    await self.channel_layer.group_add(
        self.room_group_name,
        self.channel_name
    )

    await self.accept()

async def disconnect(self, close_code):
    await self.channel_layer.group_discard(
        self.room_group_name,
        self.channel_name
    )

async def receive(self, text_data):
    text_data_json = json.loads(text_data)
    message = text_data_json['message']
    username = text_data_json['username']

    await self.channel_layer.group_send(
        self.room_group_name,
        {
            'type': 'chatroom_message',
            'message': message,
            'username': username,
        }
    )

async def chatroom_message(self, event):
    message = event['message']
    username = event['username']

    await self.send(text_data=json.dumps({
        'message': message,
        'username': username,
    }))

pass

и мой Procfile

web: gunicorn core.wsgi:application --log-file - --log-level debug
web: daphne core.asgi:application --port $PORT --bind 0.0.0.0 -v2
worker: python manage.py runworker channels --settings=core.settings -v2
python manage.py collectstatic --noinput

manage.py migrate

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