Órdenes activas en tiempo real
Canal: Socket.IO
Funcionalidad: Recibir y actualizar en tiempo real las órdenes activas de cada usuario.
🚀 Conexión y autenticación
- Conéctate al servidor Socket.IO usando la URL proporcionada por el backend (por ejemplo:
https://api.tuapp.com). - Para acceder a las órdenes activas, emite el evento
join-trade-roomcon eluserIddel usuario autenticado. - No es necesario un token adicional para la conexión Socket; el backend valida el
userIdinternamente.
🔄 Flujo de comunicación
1. Unirse a la sala de usuario
Evento emitido por el frontend:
{
"event": "join-trade-room",
"payload": {
"userId": 12345
}
}
Respuesta del backend:
{
"event": "joined-trade-room",
"payload": {
"room": "user-trade-room-12345"
}
}
2. Recepción de órdenes activas
Si hay órdenes activas:
{
"event": "order_update",
"payload": [
{
"orderId": "abc123",
"symbol": "BTCUSDT",
"side": "Buy",
"price": "27000.00",
"quantity": "0.5",
"status": "New"
// ...otros campos
}
// más órdenes...
]
}
Si no hay órdenes activas:
{
"event": "no_active_orders",
"payload": {
"message": "Sin órdenes activas"
}
}
3. Actualizaciones en tiempo real
- El backend emitirá
order_updatecon la lista actualizada de órdenes activas ono_active_orderssi ya no quedan órdenes. - El frontend debe actualizar la interfaz según el evento recibido.
📝 Consideraciones para el frontend
- Mantén la conexión abierta para recibir actualizaciones en tiempo real.
- Si se pierde la conexión, reconecta y vuelve a emitir
join-trade-roomcon eluserId. - El formato de las órdenes sigue el estándar de Bybit para órdenes activas.
- La sala es exclusiva para cada usuario; no se comparten datos entre usuarios.
📚 Resumen de eventos
| Evento | Descripción | Payload |
|---|---|---|
join-trade-room | Solicita unirse a la sala de órdenes activas | { userId: number } |
joined-trade-room | Confirmación de unión a la sala | { room: string } |
order_update | Lista actualizada de órdenes activas | Array<Orden> |
no_active_orders | No hay órdenes activas | { message: string } |