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:
| Paquete | Función |
|---|---|
RequestID | Primer mensaje del cliente. Envía versión, nombre y datos del jugador. |
ResponseID | Confirma protocolo, asigna playerID y proporciona tiempo del servidor. |
Disconnect | Solicita o indica el cierre de la conexión. |
Error | Comunica un error de protocolo o sesión. |
RequestPing | Solicita una medida de latencia/tiempo. |
ResponsePing | Devuelve 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 activoRequestActivateUDP 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
ResponseChannelListEl 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
ResponsePlayerLeftEl 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
ResponseDestroyObjectLa 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:
| Paquete | Comportamiento |
|---|---|
ForwardToAll | Todos los participantes actuales. |
ForwardToAllSaved | Todos los actuales y futuros participantes según el estado guardado. |
ForwardToOthers | Todos excepto el emisor. |
| variantes persistentes | Mantienen 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
RequestDeleteFileEstos 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
ResponseSetChannelDataLa 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
FiabilidadEsa 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.
