Websocket Connection Failed Django javascript
Я пытаюсь подключиться к своему websocket с фронтенда на javascript
const url = 'wss://chatapprender.onrender.com/${person_id}/';
Я использую каналы django для бэкенда
ASGI_urlpatterns = [ path("websocket/\<int:id\>/", consumers.ChatConsumer.as_asgi()) ]
Когда выполняется следующая строка, она выдает в консоли такую ошибку
WebSocket connection to 'wss://chatapprender.onrender.com/3/' failed:
connectToWebsocket @ script.js:71
(anonymous) @ script.js:190
это работает на моем локальном 127.0.01:8000 сервере django с этим url ws://127.0.0.1:8000/websocket/${person_id} но когда я развертываю его, он не может подключиться
INSTALLED_APPS = [
'channels',
'daphne',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'chat',
'accounts',
]
WSGI_APPLICATION = 'mychatproject.wsgi.application'
ASGI_APPLICATION = 'mychatproject.asgi.application'
routing.py
from django.urls import path
from . import consumers
ASGI_urlpatterns = [
path("websocket/<int:id>/", consumers.ChatConsumer.as_asgi())
]
asgi.py
import os
from chat import routing
from channels.auth import AuthMiddlewareStack
from django.core.asgi import get_asgi_application
from channels.routing import ProtocolTypeRouter, URLRouter
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mychatproject.settings')
application = ProtocolTypeRouter({
'http':get_asgi_application(),
'websocket':AuthMiddlewareStack(URLRouter(routing.ASGI_urlpatterns))
})
consumers.py
class ChatConsumer(WebsocketConsumer):
def connect(self):
self.accept()
try:
user_channel = UserChannel.objects.get(user=self.scope.get('user'))
user_channel.channel_name=self.channel_name
user_channel.save()
except:
user_channel=UserChannel.objects.create(user=self.scope.get('user'),
channel_name=self.channel_name)
user_channel.save()
self.person_id=self.scope.get("url_route").get("kwargs").get("id")