logo
ReferenciaAPI

ClienteJuego

Runtime interno del cliente de Eco para conexiones, canales, paquetes y estado de sesión.

ClienteJuego

ClienteJuego es la implementación interna de la sesión cliente. La mayoría del gameplay debe utilizar Eco, pero esta clase es fundamental para integrar sistemas avanzados, depurar el runtime y trabajar con transportes personalizados.

Estado de sesión

MiembroSignificado
isConnectedConexión establecida
isTryingToConnectIntentando conectar
isJoiningChannelExiste una entrada pendiente
isInChannelPertenece al contexto consultado
stageEtapa interna del cliente
playerIDID local
playerNameNombre actual
playerDataNodo de datos del jugador

Conectado y dentro de un canal son estados diferentes.

Canales

cliente.IsInChannel(idCanal);
cliente.IsJoiningChannel(idCanal);
cliente.GetChannel(idCanal);
cliente.JoinChannel(...);
cliente.LeaveChannel(idCanal);

La colección channels representa los canales activos del cliente. El modelo permite varios canales simultáneos.

Transporte

cliente.protocol;
cliente.custom;
cliente.canUseUDP;
cliente.listeningPort;
cliente.tcpEndPoint;
cliente.ping;

custom permite sustituir la conexión mediante IConnection sin cambiar el modelo lógico de canales y objetos.

Métricas

cliente.sentPackets;
cliente.sentBytes;
cliente.receivedPackets;
cliente.receivedBytes;
cliente.serverTime;
cliente.serverUptime;

Estas propiedades son útiles para instrumentación y para comprobar si un problema está en gameplay, procesamiento o transporte.

Cola de paquetes

El cliente recibe datos del transporte y los procesa durante su ciclo de actualización. El procesamiento distribuido evita que una ráfaga de paquetes bloquee indefinidamente el frame.

Socket / IConnection

Buffer

Cola de entrada

ProcesarPaquetes

Despacho

Paquetes personalizados

cliente.packetHandlers[(byte)miPaquete] = OnPacket;

El handler debe respetar el formato binario definido por quien genera el paquete.

Relación con Eco

Gameplay

Eco

ClienteJuego
   ├── Transporte
   ├── Canales
   ├── Jugador
   ├── Paquetes
   └── Objetos

No expongas ClienteJuego innecesariamente

Encapsula el acceso directo dentro de sistemas de infraestructura. El gameplay normal debe permanecer sobre la fachada de Eco para evitar acoplamiento al runtime.

Código fuente

ClienteJuego.cs

Implementación actual del runtime cliente.

Eco

Fachada recomendada para gameplay.

On this page