0

I'm working on a Django realtime chat app but for some reason I can not get my WebSocket to connect on chrome nor Firefox. I get the error message :

room.js:43 WebSocket connection to 'ws://127.0.0.1:8000/ws/chat/%22default%22/' failed: room.js:52 WebSocket ERROR room.js:57 connection closed. 1006 room.js:59 Reconnecting...

my websocket:

function connect(){
    chatSocket = new WebSocket("ws://" + window.location.host + "/ws/chat/" + roomName + "/");
    

    chatSocket.onopen = (event) => {
        console.log("SOCKET CONNECTED!!!!");
    }

    chatSocket.onerror = (err) => {
        console.log("WebSocket ERROR");
        //chatSocket.close();
    }

    chatSocket.onclose = (event) => {
        console.log(" connection closed.", event.reason, event.code);
        setTimeout(() => {
            console.log("Reconnecting...");
            connect();
        }, 2000);
    };

    chatSocket.onmessage = (event) => {
        const data = JSON.parse(event.data);
        console.log(data);

        if (data.type ===  "chat_message") {
            chatLog.value += data.message + "\n";
        }
        else{
            console.log("Wrong message type!");
        }
        // scroll 'chatLog' to the bottom
        chatLog.scrollTop = chatLog.scrollHeight;
    };

    
    console.log(chatSocket)

}

I had a similar problem with a different chat app earlier, script.js:

const chatSocket = new WebSocket("ws://" + window.location.host + "/");

chatSocket.onopen = (e) =>  console.log("user connected successfully",e)
chatSocket.onclose = (e) => console.log("user ejected from room", e)


document.querySelector("#id_message_send_input").focus()
document.querySelector("#id_message_send_input").onkeyup = (event) =>{
    if (event.keycode == "13"){
        document.querySelector("#id_message_send_button").click();
    }
}
document.querySelector("#id_message_send_button").onclick = (event) =>{
    const messageInput = document.querySelector("#id_message_send_input").value
    chatSocket.send(JSON.stringify({message: messageInput, username : request.user.username}))
}

chatSocket.onmessage = (event) => {
    const data = JSON.parse(event.data)
    let messageDiv = document.createElement('div')
    messageDiv.innerHTML = data.username +  ":->" + data.message
    document.querySelector("#id_message_send_inout").value = ""
    document.querySelector("#id_chat_item_container").appendChild(messageDiv)
}

chatSocket.onerror = (err) => {
    console.log("WebSocket error: " + err.message);
    //console.log("Closing the socket.");
    chatSocket.close();
}

According to this response error code 1006 is an issue with my WebSocket code but after looking at documentation and various examples, I can't seem to find the issue . I also get an empty string from 'event.reason' in the close event, so I'm stumped. Any help would be great :)

What I've tried:

  • restarting Firefox in incognito/troubleshoot mode

  • disabling my computer's firewall

  • disabling all extensions/ad-blockers on chrome/firefox

  • running my Django server on a different port other than 8000

DD3000
  • 1
  • Does this answer your question? [Getting the reason why websockets closed with close code 1006](https://stackoverflow.com/questions/19304157/getting-the-reason-why-websockets-closed-with-close-code-1006) – tornadoradon Mar 04 '23 at 06:46

0 Answers0