18910140161

Python-WebSocket连接到'ws://127.0.0.1:8000/ws/chat//1/'失败:-堆栈溢出

顺晟科技

2022-10-19 14:48:15

99

我很难让这个聊天应用程序工作。我遵循了以下教程https://www.youtube.com/watch?v=7egkduj-e1w

下面是我遇到麻烦的代码。

我认为问题在于URL中没有使用roomName变量,因为在/chat//1/之间没有看到它。 'ws://127.0.0.1:8000/ws/chat//1/'失败:

聊天屏幕HTML

    <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Chat</title>
</head>
<body>
<div style="height:500px;width:100%;overflow-y:scroll" id="div_data">

</div>
<div>
    <input type="text" name="message" id="message" placeholder="Message" style="padding:10px;width:100%">
    <input type="button" value="Send Message" id="send_message" style="background:dodgerblue;color:#fff;padding:10px;border:0px;width:100%">
    <script>
        var roomName='{{ room_name }}';
        var personname='{{ person_name }}';
        var chatSocket=new WebSocket('ws://'+window.location.host+'/ws/chat/'+roomName+'/'+personname+'/');
        chatSocket.onmessage=function(e){
            var data=JSON.parse(e.data)
            var message=data['message']
            var div=document.querySelector("#div_data");
            div.innerHTML+='<br><div style="padding:10px;color:#fff;background:dodgerblue;">'+message+'</div>';
            console.log(e)
        }
        chatSocket.onclose=function(e){
            var data=JSON.parse(e.data)
            var message=data['message']
            var div=document.querySelector("#div_data");
            div.innerHTML+='<br><div style="padding:10px;color:#fff;background:dodgerblue;">'+message+'</div>';
        }

        document.querySelector("#send_message").onclick=function(e){
            var message=document.querySelector("#message").value;
            chatSocket.send(JSON.stringify({'message':message}))
            document.querySelector("#message").value=''
        }

    </script>
</div>
</body>
</html>

HTML错误#1

HTML错误#2

可能与错误有关的更多代码

聊天主页HTML

    <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Chat</title>
</head>
<body>
<div style="height:500px;width:100%;overflow-y:scroll" id="div_data">

</div>
<div>
    <input type="text" name="message" id="message" placeholder="Message" style="padding:10px;width:100%">
    <input type="button" value="Send Message" id="send_message" style="background:dodgerblue;color:#fff;padding:10px;border:0px;width:100%">
    <script>
        var roomName='{{ room_name }}';
        var personname='{{ person_name }}';
        var chatSocket=new WebSocket('ws://'+window.location.host+'/ws/chat/'+roomName+'/'+personname+'/');
        chatSocket.onmessage=function(e){
            var data=JSON.parse(e.data)
            var message=data['message']
            var div=document.querySelector("#div_data");
            div.innerHTML+='<br><div style="padding:10px;color:#fff;background:dodgerblue;">'+message+'</div>';
            console.log(e)
        }
        chatSocket.onclose=function(e){
            var data=JSON.parse(e.data)
            var message=data['message']
            var div=document.querySelector("#div_data");
            div.innerHTML+='<br><div style="padding:10px;color:#fff;background:dodgerblue;">'+message+'</div>';
        }

        document.querySelector("#send_message").onclick=function(e){
            var message=document.querySelector("#message").value;
            chatSocket.send(JSON.stringify({'message':message}))
            document.querySelector("#message").value=''
        }

    </script>
</div>
</body>
</html>

routing.py proyect

    <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Chat</title>
</head>
<body>
<div style="height:500px;width:100%;overflow-y:scroll" id="div_data">

</div>
<div>
    <input type="text" name="message" id="message" placeholder="Message" style="padding:10px;width:100%">
    <input type="button" value="Send Message" id="send_message" style="background:dodgerblue;color:#fff;padding:10px;border:0px;width:100%">
    <script>
        var roomName='{{ room_name }}';
        var personname='{{ person_name }}';
        var chatSocket=new WebSocket('ws://'+window.location.host+'/ws/chat/'+roomName+'/'+personname+'/');
        chatSocket.onmessage=function(e){
            var data=JSON.parse(e.data)
            var message=data['message']
            var div=document.querySelector("#div_data");
            div.innerHTML+='<br><div style="padding:10px;color:#fff;background:dodgerblue;">'+message+'</div>';
            console.log(e)
        }
        chatSocket.onclose=function(e){
            var data=JSON.parse(e.data)
            var message=data['message']
            var div=document.querySelector("#div_data");
            div.innerHTML+='<br><div style="padding:10px;color:#fff;background:dodgerblue;">'+message+'</div>';
        }

        document.querySelector("#send_message").onclick=function(e){
            var message=document.querySelector("#message").value;
            chatSocket.send(JSON.stringify({'message':message}))
            document.querySelector("#message").value=''
        }

    </script>
</div>
</body>
</html>

routing.py应用程序

    <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Chat</title>
</head>
<body>
<div style="height:500px;width:100%;overflow-y:scroll" id="div_data">

</div>
<div>
    <input type="text" name="message" id="message" placeholder="Message" style="padding:10px;width:100%">
    <input type="button" value="Send Message" id="send_message" style="background:dodgerblue;color:#fff;padding:10px;border:0px;width:100%">
    <script>
        var roomName='{{ room_name }}';
        var personname='{{ person_name }}';
        var chatSocket=new WebSocket('ws://'+window.location.host+'/ws/chat/'+roomName+'/'+personname+'/');
        chatSocket.onmessage=function(e){
            var data=JSON.parse(e.data)
            var message=data['message']
            var div=document.querySelector("#div_data");
            div.innerHTML+='<br><div style="padding:10px;color:#fff;background:dodgerblue;">'+message+'</div>';
            console.log(e)
        }
        chatSocket.onclose=function(e){
            var data=JSON.parse(e.data)
            var message=data['message']
            var div=document.querySelector("#div_data");
            div.innerHTML+='<br><div style="padding:10px;color:#fff;background:dodgerblue;">'+message+'</div>';
        }

        document.querySelector("#send_message").onclick=function(e){
            var message=document.querySelector("#message").value;
            chatSocket.send(JSON.stringify({'message':message}))
            document.querySelector("#message").value=''
        }

    </script>
</div>
</body>
</html>

consumer.py

    <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Chat</title>
</head>
<body>
<div style="height:500px;width:100%;overflow-y:scroll" id="div_data">

</div>
<div>
    <input type="text" name="message" id="message" placeholder="Message" style="padding:10px;width:100%">
    <input type="button" value="Send Message" id="send_message" style="background:dodgerblue;color:#fff;padding:10px;border:0px;width:100%">
    <script>
        var roomName='{{ room_name }}';
        var personname='{{ person_name }}';
        var chatSocket=new WebSocket('ws://'+window.location.host+'/ws/chat/'+roomName+'/'+personname+'/');
        chatSocket.onmessage=function(e){
            var data=JSON.parse(e.data)
            var message=data['message']
            var div=document.querySelector("#div_data");
            div.innerHTML+='<br><div style="padding:10px;color:#fff;background:dodgerblue;">'+message+'</div>';
            console.log(e)
        }
        chatSocket.onclose=function(e){
            var data=JSON.parse(e.data)
            var message=data['message']
            var div=document.querySelector("#div_data");
            div.innerHTML+='<br><div style="padding:10px;color:#fff;background:dodgerblue;">'+message+'</div>';
        }

        document.querySelector("#send_message").onclick=function(e){
            var message=document.querySelector("#message").value;
            chatSocket.send(JSON.stringify({'message':message}))
            document.querySelector("#message").value=''
        }

    </script>
</div>
</body>
</html>

顺晟科技:

所以,经过搜索,我意识到我有一个小错误

RoomName有一个:而不是一个_

    <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Chat</title>
</head>
<body>
<div style="height:500px;width:100%;overflow-y:scroll" id="div_data">

</div>
<div>
    <input type="text" name="message" id="message" placeholder="Message" style="padding:10px;width:100%">
    <input type="button" value="Send Message" id="send_message" style="background:dodgerblue;color:#fff;padding:10px;border:0px;width:100%">
    <script>
        var roomName='{{ room_name }}';
        var personname='{{ person_name }}';
        var chatSocket=new WebSocket('ws://'+window.location.host+'/ws/chat/'+roomName+'/'+personname+'/');
        chatSocket.onmessage=function(e){
            var data=JSON.parse(e.data)
            var message=data['message']
            var div=document.querySelector("#div_data");
            div.innerHTML+='<br><div style="padding:10px;color:#fff;background:dodgerblue;">'+message+'</div>';
            console.log(e)
        }
        chatSocket.onclose=function(e){
            var data=JSON.parse(e.data)
            var message=data['message']
            var div=document.querySelector("#div_data");
            div.innerHTML+='<br><div style="padding:10px;color:#fff;background:dodgerblue;">'+message+'</div>';
        }

        document.querySelector("#send_message").onclick=function(e){
            var message=document.querySelector("#message").value;
            chatSocket.send(JSON.stringify({'message':message}))
            document.querySelector("#message").value=''
        }

    </script>
</div>
</body>
</html>

我还在consumer.consumer后面的routing.py中添加了

    <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Chat</title>
</head>
<body>
<div style="height:500px;width:100%;overflow-y:scroll" id="div_data">

</div>
<div>
    <input type="text" name="message" id="message" placeholder="Message" style="padding:10px;width:100%">
    <input type="button" value="Send Message" id="send_message" style="background:dodgerblue;color:#fff;padding:10px;border:0px;width:100%">
    <script>
        var roomName='{{ room_name }}';
        var personname='{{ person_name }}';
        var chatSocket=new WebSocket('ws://'+window.location.host+'/ws/chat/'+roomName+'/'+personname+'/');
        chatSocket.onmessage=function(e){
            var data=JSON.parse(e.data)
            var message=data['message']
            var div=document.querySelector("#div_data");
            div.innerHTML+='<br><div style="padding:10px;color:#fff;background:dodgerblue;">'+message+'</div>';
            console.log(e)
        }
        chatSocket.onclose=function(e){
            var data=JSON.parse(e.data)
            var message=data['message']
            var div=document.querySelector("#div_data");
            div.innerHTML+='<br><div style="padding:10px;color:#fff;background:dodgerblue;">'+message+'</div>';
        }

        document.querySelector("#send_message").onclick=function(e){
            var message=document.querySelector("#message").value;
            chatSocket.send(JSON.stringify({'message':message}))
            document.querySelector("#message").value=''
        }

    </script>
</div>
</body>
</html>
  • TAG:
相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航