Sincronización avanzada
Cómo tratar cambios de estado, colas pendientes y autoridad en objetos de red.
Sincronización avanzada
El sistema de datos de Objeto actualiza localmente el valor y, cuando puede enviar, comunica el cambio por la red. Si el objeto todavía no puede enviar, Eco puede poner el cambio en una cola para transmitirlo posteriormente. fileciteturn235file0
Flujo
Set(...)
↓
Actualizar estado local
↓
¿Puede enviar?
├─ No → cola pendiente
└─ Sí → enviar cambio
↓
servidor / propietario
↓
resto de clientesAutoridad
Idealmente el propietario del objeto realiza el cambio. Si otro participante intenta modificarlo, Eco puede reenviar la petición al propietario para mantener una autoridad clara. fileciteturn235file0
Esto evita que dos clientes escriban simultáneamente el mismo estado sin una regla de autoridad.
Estado local inmediato
Set actualiza la copia local antes de terminar el viaje de red. Esto mejora la respuesta inmediata, pero implica que la interfaz puede observar un valor antes de que el servidor haya confirmado la operación.
Por eso los sistemas críticos no deberían confundir “valor local solicitado” con “estado autoritativo confirmado”.
Datos completos frente a cambios incrementales
Durante la creación puede ser razonable enviar un Nodo completo. Durante el juego resulta más eficiente enviar cambios concretos:
Creación → estado inicial completo
Runtime → Set("vida", 75)
Runtime → Set("mana", 40)El propio código recomienda utilizar Get/Set después de la creación en lugar de reemplazar continuamente todo el árbol de datos. fileciteturn235file0
AutoSincronizar
AutoSincronizar puede automatizar la comparación y envío de valores, pero debe utilizarse con criterio: comprobar campos mediante reflexión periódicamente tiene un coste y puede ocultar la autoridad real del estado.
Referencias
Sincronización
Modelo básico de sincronización de Eco.
Sincronizar una entidad
Workflow práctico para sincronizar un objeto.
