APIs de bajo nivel
Primitivas internas de Eco para paquetes, buffers, callbacks, caché, serialización y transporte personalizado.
APIs de bajo nivel
Estas APIs permiten trabajar por debajo de Eco, Objeto y Componente. Son útiles para extensiones del protocolo, herramientas de diagnóstico y transportes personalizados.
API de infraestructura
Empieza siempre por la API de alto nivel. Manipular Paquete y Buffer implica asumir manualmente responsabilidades que Eco normalmente resuelve por ti.
Capas
Gameplay
↓
Eco / Objeto / Componente
↓
Paquete
↓
Buffer
↓
ClienteJuego / Servidor
↓
TCP / UDP / IConnectionPaquete
Paquete representa una operación del protocolo. Los tipos internos cubren conexión, canales, objetos, datos, archivos, RFC y transporte.
Cuando necesitas una extensión de protocolo, registra un controlador para un identificador que no interfiera con los paquetes utilizados por Eco.
Eco.EstablecerControlPaquete(miID, (cliente, buffer) =>
{
// Leer y procesar el paquete personalizado.
});La lógica del controlador debe consumir el Buffer exactamente en el mismo orden en que fue escrito por el emisor.
Buffer
Buffer es la capa de lectura y escritura binaria.
Buffer buffer = new Buffer();
buffer.Write(42);
buffer.Write("Eco");
int numero = buffer.ReadInt();
string texto = buffer.ReadString();No confundas el Buffer de protocolo con almacenamiento persistente. Es una representación temporal de datos transportables.
RFC y retorno
Eco conserva mecanismos para esperar a que operaciones remotas anteriores hayan sido procesadas:
Eco.EnviarConRetorno(() =>
{
// El procesamiento anterior ha alcanzado el retorno.
});Y en workflows basados en coroutine:
yield return Eco.EsperarRetorno();Úsalo como punto de coordinación; no como mecanismo de sincronización de gameplay continuo.
Caché y archivos
La caché y la API de archivos son capas distintas de la persistencia de objetos:
Nodo / datos → estado estructurado
Persistencia → mundo y objetos
Archivos → almacenamiento de ficheros
Caché → datos auxiliares asociados al servidorTiempo y diagnóstico
Para mediciones de red utiliza el tiempo de servidor y las métricas expuestas por Eco:
double tiempo = Eco.TiempoServidor;
int ping = Eco.Ping;
long bytesEnviados = Eco.BytesEnviados;
long bytesRecibidos = Eco.BytesRecibidos;Estas métricas sirven para instrumentación y diagnóstico sin inspeccionar manualmente los sockets.
Conexiones personalizadas
Una conexión personalizada permite conservar el modelo de Eco mientras se sustituye la capa física de transporte. El punto de extensión es IConnection y se utiliza en integraciones como Steam Networking.
Transportes personalizados
Arquitectura de IConnection y sustitución del transporte.
Cuándo bajar de nivel
| Necesidad | API recomendada |
|---|---|
| Gameplay | Eco, Objeto, Componente |
| Estado | Set / Get / sincronización |
| Acción remota | RFC |
| Crear objeto | Eco.Instanciar |
| Diagnóstico | métricas de Eco |
| Protocolo propio | Paquete + Buffer |
| Transporte propio | IConnection |
Código fuente
ClienteJuego.cs
Procesamiento de paquetes en el cliente.
ServidorJuego.cs
Procesamiento y gestión de red en el servidor.
