Con el siguiente código, abro una conexión de transmisión al intercambio de criptomonedas de Binance:
let adress = 'wss://stream.binance.com:9443/ws/btcusdt@kline_1h'; const ws = new WebSocket(adress);Si hago esta llamada para diferentes monedas criptográficas, luego tengo algunas corrientes abiertas, quiero saber cómo puedo verificar las corrientes abiertas actuales, ¿hay algo como una función o parámetro donde pueda ver para qué monedas tengo abierto? corriente corriendo?
porque también tengo el problema de que parece que las transmisiones se detienen a veces y no tengo una buena solución para verificar qué transmisiones se han detenido y cómo volver a conectarlas. Mi idea ahora es primero encontrar una manera de verificar qué transmisiones se están ejecutando y luego, tal vez, si una transmisión se detiene, enviaré la solicitud de conexión nuevamente.
En javascript hay una cosa de eventos websocket, por lo que todo lo que necesita es
ws.onclose = function(event) { ws = new WebSocket(adress); //just reopen it };O, para mayor seguridad, puede
ws.onclose = function(event) { if (event.wasClean) { ws = new WebSocket(adress); } else { console.log('Connection error!'); //or whatever u want } };Lo siento por este estilo estúpido, soy novato allí
Si tiene su variable ws , entonces verificar si el websocket está abierto y vivo se hace con
if(ws && ws.readyState === 1){ // is opened }Para otros estados del websocket, consulte los documentos .
Si desea recibir mensajes push del servidor, debe mantener abierta la conexión ws. De lo contrario, puede cerrar el ws después de una consulta y volver a abrirlo para otra consulta. Debe esperar el estado cerrado ws.readyState === 3 antes de volver a abrir.
Si necesita mantener abiertas todas las conexiones ws, necesita una lista de objetos ws. Empujas nuevos objetos a la lista:
let ws_list = [] // global list of ws objects let create_connection = function(url){ try{ ws_list.push(new WebSocket(url)); } catch(err){ console.log(err, url); } } let do_something = function(){ for(let ws of ws_list){ // do something with the ws object } }