Primer cliente
Conecta un cliente de Eco, espera el handshake, entra en un canal y valida la sesión.
Primer cliente
Esta guía cubre el recorrido mínimo desde una instancia de juego sin sesión hasta un cliente conectado y dentro de un canal.
Objetivo
Al terminar tendrás una secuencia fiable: conexión → handshake → canal → comprobación de estado. No añadiremos objetos ni gameplay hasta que este flujo sea estable.
Flujo
Aplicación
↓
Eco
↓
ClienteJuego
↓
Handshake
↓
Canal
↓
Sesión listaPreparación
La lógica de cliente se concentra en ClienteJuego. La fachada de Pandora puede exponerlo de otra forma, pero el modelo interno sigue teniendo estados independientes para conexión y pertenencia a canales.
Conectar
Crear la intención de conexión [step]
cliente.Connect(endpoint);Connect inicia el proceso; no implica que la sesión esté lista en la misma instrucción.
Esperar el handshake [step]
Comprueba el estado de conexión antes de solicitar operaciones dependientes del servidor.
if (!cliente.isConnected)
{
return;
}Solicitar un canal [step]
cliente.JoinChannel(
channelID: 1,
levelName: "Game",
persistent: false,
playerLimit: 4,
password: ""
);Esperar la entrada [step]
Mientras Eco espera la respuesta, IsJoiningChannel(1) puede indicar que la operación todavía está pendiente.
if (cliente.IsJoiningChannel(1))
{
// Todavía no usar el canal como si estuviera listo.
}Validar el canal [step]
if (cliente.IsInChannel(1))
{
Canal canal = cliente.GetChannel(1);
}Cliente remoto vs local
ClienteJuego utiliza la conexión de red y el protocolo normal. Es el entorno que debes utilizar para validar comportamiento real entre procesos o máquinas.
Eco puede asociar un ServidorJuego local para ejecutar cliente y servidor en el mismo proceso. Es excelente para pruebas, pero no reproduce todas las condiciones de una conexión real.
Estado de la sesión
isTryingToConnect
│
▼
isConnected
│
├── isJoiningChannel
│ │
│ ▼
└──── isInChannelEstos estados son independientes. Conectar no te introduce automáticamente en una partida.
A partir de aquí
Una vez dentro del canal puedes:
Crear un objeto
Añadir una entidad con identidad de red.
Sincronizar estado
Mantener datos de la entidad sincronizados.
Enviar una acción
Ejecutar una RFC con destinatarios concretos.
Errores frecuentes
Conectar no significa estar en una partida
La conexión sólo establece la sesión con el servidor. La entrada a uno o varios canales es una operación posterior.
No asumas un solo canal
Eco mantiene varios canales por cliente. Evita diseñar tu estado alrededor de un único channels[0].
Desconexión
Cuando termines la sesión:
cliente.Disconnect();No necesitas convertir la desconexión en una secuencia manual de abandono de canales; el cierre de la sesión forma parte del ciclo de vida del cliente.
