Saltar al contenido principal

Cotización en tiempo real

Evento emitido por el backend vía WebSocket para enviar actualizaciones en tiempo real del precio de criptomonedas, utilizando Bybit como fuente de datos.


📈 Cotizaciones en tiempo real

Este evento permite a los clientes recibir el precio actualizado de pares de criptomonedas en tiempo real, sin necesidad de realizar polling.


📤 Emisor del evento

Origen del evento

El evento es emitido por el gateway WebSocket del backend, desde la clase BybitListenerService.

this.clientSocket.emitEvent('quote_update', quote);

📦 Evento quote_update

quote_update

Evento emitido cada vez que se detecta un cambio de precio en alguno de los símbolos suscritos.


📋 Payload del evento

Formato del payload

{
"symbol": "BTCUSDT",
"price": "67890.12",
"timestamp": 1718655910000
}

Descripción de campos

CampoTipoDescripción
symbolstringPar de trading (ej: BTCUSDT, ETHUSDT)
pricestringPrecio actual del par
timestampnumberEpoch en milisegundos cuando se emitió el evento

🧑‍💻 Cómo escucharlo (Frontend)

Ejemplo con socket.io-client

Ejemplo de cómo escuchar el evento desde el frontend usando JavaScript.

import { io } from 'socket.io-client';

const socket = io('https://tu-backend.com'); // URL del backend

socket.on('quote_update', (data) => {
console.log(`[${data.symbol}] Nuevo precio: $${data.price}`);
// Actualizar estado o UI aquí
});

🔁 Frecuencia de actualización

Frecuencia

Las actualizaciones se envían cada vez que el precio cambia para los símbolos suscritos. La frecuencia depende directamente de la actividad del mercado.


🧾 Símbolos disponibles

Símbolos actualmente suscritos

  • BTCUSDT
  • ETHUSDT
  • SOLUSDT
  • BNBUSDT
  • ADAUSDT
  • XRPUSDT

Si se requiere un nuevo par, debe agregarse desde el backend en BybitListenerService. El frontend no requiere cambios para recibir nuevos símbolos.


⚠️ Consideraciones de implementación

Notas importantes

  • El evento puede recibirse varias veces por segundo en momentos de alta volatilidad.
  • Se recomienda optimizar renders en UI (throttling / batching).
  • Implementar reconexión automática si se pierde la conexión WebSocket.
  • El precio se envía como string para preservar precisión decimal.

🔧 Extensibilidad

Extensión del servicio

El backend puede ampliar la lista de símbolos sin modificar el contrato del evento. El evento quote_update seguirá siendo el mismo para cualquier nuevo par.