Cuando ejecuto el proyecto a través de gunicorn (comando: gunicorn --bind :8000 myproject.asgi:application), aparece este error.
Error
Traceback (most recent call last): File "/venv/lib/python3.8/site-packages/gunicorn/workers/sync.py", line 136, in handle self.handle_request(listener, req, client, addr) File "/venv/lib/python3.8/site-packages/gunicorn/workers/sync.py", line 179, in handle_request respiter = self.wsgi(environ, resp.start_response) TypeError: __call__() missing 1 required positional argument: 'send'asgi.py
import os from django.core.asgi import get_asgi_application os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings.base') django_asgi_app = get_asgi_application() from channels.auth import AuthMiddlewareStack from channels.routing import ProtocolTypeRouter, URLRouter from channels.security.websocket import AllowedHostsOriginValidator from chats import routing application = ProtocolTypeRouter({ "http": django_asgi_app, "websocket": AllowedHostsOriginValidator( AuthMiddlewareStack( URLRouter( routing.websocket_urlpatterns ) ) ), })chats.routing.py
from django.urls import re_path from . import consumers websocket_urlpatterns = [ re_path(r'ws/messages/(?P<username>[-:\w]+)/$', consumers.ChatConsumer.as_asgi()), ]Hay un problema en github similar a su problema
Respuesta: Probablemente te perdiste as_asgi() en tu routing.py