logo
ReferenciaAPI

Protocolo de paquetes

Referencia organizada de las familias de Paquete que forman el protocolo de Eco.

Protocolo de paquetes

Paquete es un catálogo de operaciones de protocolo. La intención de esta página no es obligar a memorizar cada valor del enum, sino explicar qué familia representa cada mensaje y qué flujo implementa.

API de infraestructura

La mayoría de estos paquetes son utilizados internamente por Eco, ClienteJuego y ServidorJuego. Para gameplay utiliza primero Eco, Objeto, Componente y RFC.

Conexión y handshake

Los mensajes iniciales establecen identidad y compatibilidad:

PaqueteFunción
RequestIDPrimer mensaje del cliente. Envía versión, nombre y datos del jugador.
ResponseIDConfirma protocolo, asigna playerID y proporciona tiempo del servidor.
DisconnectSolicita o indica el cierre de la conexión.
ErrorComunica un error de protocolo o sesión.
RequestPingSolicita una medida de latencia/tiempo.
ResponsePingDevuelve información temporal y estado agregado.
Cliente                 Servidor
   │ RequestID              │
   ├───────────────────────>│
   │<───────────────────────┤ ResponseID
   │                        │
   │        sesión lista    │

Activación de UDP

La conexión TCP puede negociar posteriormente la ruta UDP:

RequestSetUDP

ResponseSetUDP

RequestActivateUDP

UDP activo

RequestActivateUDP se envía por UDP y no necesita una respuesta convencional.

Canales

Las operaciones de canal incluyen:

RequestJoinChannel
ResponseJoiningChannel
ResponseJoinChannel
ResponsePlayerJoined
RequestLeaveChannel
ResponseLeaveChannel
ResponsePlayerLeft
RequestCloseChannel
RequestSetPlayerLimit
RequestLoadLevel
ResponseLoadLevel
RequestChannelList
ResponseChannelList

El flujo de entrada es deliberadamente más largo que una simple petición porque el servidor debe reconstruir jugadores, objetos y estado del canal antes de confirmar la incorporación.

Jugadores

Los paquetes relacionados con jugadores transportan identidad y datos:

RequestSetName
ResponseRenamePlayer
RequestSetPlayerData
ResponseSetPlayerData
ResponsePlayerJoined
ResponsePlayerLeft

El id de sesión y los datos del jugador viajan separados del estado de los objetos del mundo.

Objetos

El ciclo de vida de un objeto utiliza:

RequestCreateObject
ResponseCreateObject
RequestTransferObject
ResponseTransferObject
RequestDestroyObject
ResponseDestroyObject

La creación incluye canal, persistencia, método de creación, prefab y parámetros serializados. La transferencia contiene canal antiguo, canal nuevo, ID antiguo y nuevo.

Transferencia

La transferencia no es equivalente a mover un GameObject local. Es una operación de protocolo que modifica el contexto de red del objeto y puede producir una nueva identidad dentro del canal destino.

Reenvío de RFC

Las operaciones de alto nivel se transportan mediante familias de forwarding:

PaqueteComportamiento
ForwardToAllTodos los participantes actuales.
ForwardToAllSavedTodos los actuales y futuros participantes según el estado guardado.
ForwardToOthersTodos excepto el emisor.
variantes persistentesMantienen la operación para reconstrucción posterior.

El protocolo conserva la información necesaria para localizar objeto, RFC y canal antes de entregar los parámetros al runtime.

Archivos

La capa de archivos dispone de mensajes para:

RequestGetFileList
ResponseGetFileList
RequestSaveFile
RequestLoadFile
ResponseLoadFile
RequestDeleteFile

Estos mensajes forman el servicio de archivos del servidor y no deben confundirse con la persistencia automática de objetos y canales.

Datos de canal

El protocolo dispone de mensajes específicos para modificar y notificar cambios de DatosCanal:

RequestSetChannelData
ResponseSetChannelData

La ruta se transmite junto al canal y al valor serializado.

Configuración TCP

RequestNoDelay permite cambiar la opción de Nagle en la conexión establecida.

Echo y callbacks

Las versiones modernas de la arquitectura también incluyen un paquete de retorno/eco para confirmar recorridos de red y ejecutar callbacks cuando una operación alcanza de nuevo el cliente.

Esto es la base de funcionalidades como EnviarConRetorno, EsperarRetorno y pruebas de latencia sin implementar un protocolo paralelo.

Diagnóstico

Cuando se inspecciona un paquete, registra como mínimo:

Paquete
Canal
Jugador origen
Objeto / RFC
Longitud
Transporte
Fiabilidad

Esa información permite distinguir un error de gameplay de un error de protocolo.

Fuentes

Paquete.cs

Catálogo real de paquetes de Eco.

ClienteJuego

Procesamiento desde el cliente.

ServidorJuego

Procesamiento desde el servidor.

On this page