Home > Mobile >  Websocket streams check connection
Websocket streams check connection

Time:11-28

With the following code i open a stream connection to the Binance crypto exchange:

let adress = 'wss://stream.binance.com:9443/ws/btcusdt@kline_1h';
const ws = new WebSocket(adress);

If i make this call for different crypto currencys then i have later a few streams open, i want to know how can i check the current open streams, is there something like a function or parameter where i can see for which currencys i have a open stream running?

because i also have the problem that it looks like streams are stopping sometimes and i dont have a good solution for checking which streams have stop and how to receonnect them. My idea is now to first find a way how to check which streams are running and then maybe if one streams is stop i will just send the connection request again.

CodePudding user response:

In javascript there is a websocket events thing, so all you need is to

ws.onclose = function(event) {
   ws = new WebSocket(adress);
    //just reopen it
};

Or, for more safety, you can

ws.onclose = function(event) {
    if (event.wasClean) {
        ws = new WebSocket(adress);
    } else {
        console.log('Connection error!');
        //or whatever u want
    }
};

Sorry for this stupid styling, I'm newbie there

CodePudding user response:

If you have your ws variable, then checking whether the websocket is open and alive is done with

if(ws && ws.readyState === 1){
  // is opened
}

For other states of the websocket, see the docs.

  • Related