logo
Guías

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 lista

Preparació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]

Conectar con el servidor
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
        │        │
        │        ▼
        └──── isInChannel

Estos estados son independientes. Conectar no te introduce automáticamente en una partida.

A partir de aquí

Una vez dentro del canal puedes:

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:

Cerrar la conexió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.

Referencias

On this page