Websocket разъединяется снова и снова в django

Я пытаюсь создать приложение чата один на один, используя каналы django и websockets. Я следую этому руководству https://youtu.be/RVH05S1qab8. Я получаю эту ошибку, когда я пытаюсь http://127.0.0.1:8000/raunak2/ в url :

[Failure instance: Traceback: <class 'ValueError'>: No route found for path 'raunak2/'.
C:\Users\lenovo\Envs\lend\lib\site-packages\autobahn\websocket\protocol.py:2841:processHandshake
C:\Users\lenovo\Envs\lend\lib\site-packages\txaio\tx.py:366:as_future
C:\Users\lenovo\Envs\lend\lib\site-packages\twisted\internet\defer.py:191:maybeDeferred
C:\Users\lenovo\Envs\lend\lib\site-packages\daphne\ws_protocol.py:72:onConnect
--- <exception caught here> ---
C:\Users\lenovo\Envs\lend\lib\site-packages\twisted\internet\defer.py:191:maybeDeferred
C:\Users\lenovo\Envs\lend\lib\site-packages\daphne\server.py:200:create_application
C:\Users\lenovo\Envs\lend\lib\site-packages\channels\staticfiles.py:41:__call__
C:\Users\lenovo\Envs\lend\lib\site-packages\channels\routing.py:54:__call__
C:\Users\lenovo\Envs\lend\lib\site-packages\channels\security\websocket.py:37:__call__
C:\Users\lenovo\Envs\lend\lib\site-packages\channels\sessions.py:47:__call__
C:\Users\lenovo\Envs\lend\lib\site-packages\channels\sessions.py:145:__call__
C:\Users\lenovo\Envs\lend\lib\site-packages\channels\sessions.py:169:__init__
C:\Users\lenovo\Envs\lend\lib\site-packages\channels\middleware.py:31:__call__
C:\Users\lenovo\Envs\lend\lib\site-packages\channels\routing.py:150:__call__
]
WebSocket DISCONNECT /raunak2/ [127.0.0.1:65338]

Я не нашел идеального решения этой проблемы, но у меня есть такие решения, как удаление '$' из URL из routing.py, но это не работает.

Мой routing.py:

application= ProtocolTypeRouter({
    'websocket':AllowedHostsOriginValidator(
        AuthMiddlewareStack(
            URLRouter([
                
                    re_path(r"^messages/(?P<username>[\w.@+-]+)", ChatConsumer),
            ]
            )
        )
    )
})

Мое приложение urls.py:

urlpatterns=[
 path("inbox",InboxView.as_view()),
 re_path(r"^(?P<username>[\w.@+-]+)/", ThreadView.as_view()),
]

JS-код:

<script src="https://cdnjs.cloudflare.com/ajax/libs/reconnecting-websocket/1.0.0/reconnecting-websocket.min.js" integrity="sha512-B4skI5FiLurS86aioJx9VfozI1wjqrn6aTdJH+YQUmCZum/ZibPBTX55k5d9XM6EsKePDInkLVrN7vPmJxc1qA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

<script>

var loc=window.location
var formData=$("#form")
var msgInput=$("#id_message")
var chatHolder=$("#chat-items")
var me=$("#myUsername").val()
var wsStart='ws://' 
if(loc.protocol=='https:'){
    wsStart='wss://'
}
var endpoint =wsStart + loc.host + loc.pathname 
var socket= new ReconnectingWebSocket(endpoint)


socket.onmessage=function(e){
    console.log("message",e)
    var chatDataMsg=JSON.parse(e.data)
    chatHolder.append("<li>"+ chatDataMsg.message +"via"+ chatDataMsg.username +"</li>")
}
socket.onopen=function(e){
    console.log("open",e)
    formData.submit(function(event){
        event.preventDefault()
        var msgText=msgInput.val()
        // chatHolder.append("<li>"+ msgText + " via "+me  + "</li>")
        // var formDataSerialized=formData.serialize()
        var finalData={
            'message': msgText
        }
        socket.send(JSON.stringify(finalData))
        // msgInput.val('')
        formData[0].reset()
    })
}
socket.onerror=function(e){
    console.log("error",e)
}
socket.onclose=function(e){
    console.log("close",e)
}

</script>

pip freeze:

aioredis==1.3.1
asgi-redis==1.4.3    
asgiref==3.1.2       
async-timeout==3.0.1 
attrs==21.2.0        
autobahn==21.3.1     
Automat==20.2.0      
cffi==1.14.6
channels==2.4.0      
channels-redis==2.4.2
constantly==15.1.0   
cryptography==3.4.8  
daphne==2.5.0        
Django==2.2.24       
geographiclib==1.52
geopy==2.2.0
hiredis==2.0.0
hyperlink==21.0.0
idna==3.2
incremental==21.3.0
msgpack==0.6.2
msgpack-python==0.5.6
Pillow==8.2.0
pyasn1==0.4.8
pyasn1-modules==0.2.8
pycparser==2.20
pyOpenSSL==20.0.1
pytz==2021.1
redis==2.10.6
service-identity==21.1.0
six==1.16.0
sqlparse==0.4.1
Twisted==21.7.0
twisted-iocpsupport==1.0.2
txaio==21.2.1
typing-extensions==3.10.0.2
zope.interface==5.4.0
Вернуться на верх