How to wait for a WebSocket’s readyState to change

This is simple and it work perfectly… you can add condition about maximal time, or number of try to make it more robust…

function sendMessage(msg){
    // Wait until the state of the socket is not ready and send the message when it is...
    waitForSocketConnection(ws, function(){
        console.log("message sent!!!");

// Make the function wait until the connection is made...
function waitForSocketConnection(socket, callback){
        function () {
            if (socket.readyState === 1) {
                console.log("Connection is made")
                if (callback != null){
            } else {
                console.log("wait for connection...")
                waitForSocketConnection(socket, callback);

        }, 5); // wait 5 milisecond for the connection...

Leave a Comment