Objetivo
Destinatario lógico de un envío de Eco y regla de persistencia asociada.
Objetivo
Objetivo determina a quién llega una comunicación y si esa comunicación debe conservarse en el servidor para participantes futuros.
ero.Send("Abrir", Objetivo.Todos);
ero.Send("Actualizar", Objetivo.OtrosPersistente);Modos disponibles
| Objetivo | Receptor | Persistencia | Uso habitual |
|---|---|---|---|
Todos | Todos los jugadores actuales, incluido el emisor | No | Evento visual inmediato |
TodosPersistente | Todos los jugadores actuales | Sí | Estado que debe reconstruirse |
Otros | Todos excepto el emisor | No | El local ya aplicó el efecto |
OtrosPersistente | Todos excepto el emisor | Sí | Estado global sin duplicar local |
Host | Host del canal | No | Compatibilidad o lógica delegada |
Difusion | Todos según su mecanismo de difusión | No | Mensajes frecuentes |
Admin | Administradores | No | Diagnóstico y administración |
SoloPersistente | Nadie inmediatamente | Sí | Registrar estado para futuras entradas |
Objetivo no decide autoridad
El destinatario determina quién recibe el mensaje. La autoridad sobre un Objeto es una cuestión diferente y debe resolverse con ownership y PuedeEnviar.
Persistencia
Los objetivos con Persistente no significan simplemente “enviar varias veces”. El servidor conserva la operación para que los jugadores que entren posteriormente puedan reconstruir el estado correspondiente.
Esto resulta útil para:
- puertas abiertas;
- objetos destruidos;
- activación de eventos;
- configuración persistente de un canal.
Ejemplo
Supón que un jugador activa una palanca y todos los jugadores deben verla activa:
ero.Send("Activar", Objetivo.TodosPersistente);Si la animación local ya se ejecuta antes del envío y el emisor no necesita recibir la RFC de nuevo:
ero.Send("Activar", Objetivo.OtrosPersistente);SoloPersistente
SoloPersistente permite registrar la operación en el servidor sin enviarla inmediatamente a los jugadores actuales.
Es útil cuando el estado se utilizará como parte de la reconstrucción futura y los jugadores actuales ya conocen el estado por otro mecanismo.
Objetivo y RFC
No todas las RFC deberían utilizar el mismo objetivo. La decisión depende de la semántica:
¿Es una acción remota?
↓
RFC
↓
¿Quién necesita recibirla?
↓
Objetivo
↓
¿Debe reconstruirse después?
↓
Persistente / no persistenteRFC
Cómo definir y enviar acciones remotas.
Paquete
Representación de bajo nivel de una comunicación.
Objetivo.cs
Definición actual de los destinatarios.
