public readonly record struct RealmEndpointWhere a client opens its session. Data, never configuration.
Remarks
Doc 27 § The routing question: the client learns "an endpoint and a ticket" from the gate and nothing above the transport knows the difference between a realm's own address and one a relay allocated on its behalf. That property is what makes DDoS scrubbing, IPv4 exhaustion and console platform requirements a placement decision rather than an architecture change (M-Q1) — and it only holds while this value travels with the placement answer instead of being read from a config file at boot.
A host string rather than an IPEndPoint: a Kubernetes node's external address, a relay's DNS name and a loopback port are all things this has to carry, and resolving them is the transport's job at the moment of connecting rather than the orchestrator's at the moment of deciding.
Fields and properties (5)
public int PortA UDP port, 1–65535, or zero for "the backend will choose".
public static RealmEndpoint NoneNowhere.
public string HostThe host. Null only on default; see RealmInstanceId.
public bool IsValidWhether this names somewhere a client could reach.
public bool IsUnboundWhether this is a request for an endpoint rather than one — anything with no port.
Methods (6)
public RealmEndpoint(string Host, int Port)Where a client opens its session. Data, never configuration.
public RealmEndpoint On(int port)The same endpoint on a different port.
public static bool TryParse(string? text, out RealmEndpoint endpoint)Reads one back.
public bool Equals(RealmEndpoint other)Whether two endpoints name the same place.
public override int GetHashCode()Returns the hash code for this instance.
public override string ToString()Returns the fully qualified type name of this instance.
Used by (33)
- ClusterSerializationTestsVixen.Live.Cluster.Tests
- DockerPlacementVixen.Live.Placement.Docker
- DockerPlacementTestsVixen.Live.Placement.Docker.Tests
- FakeMapVixen.Live.Realm.Cluster.Tests
- FakeShardVixen.Live.Realm.Cluster.Tests
- GateServiceVixen.Live.Gate
- GateServiceTestsVixen.Live.Gate.Tests
- IShardGrainVixen.Live.Cluster
- KubernetesPlacementVixen.Live.Placement.Kubernetes
- KubernetesPlacementTestsVixen.Live.Placement.Kubernetes.Tests
- LiveVocabularyTestsVixen.Live.Abstractions.Tests
- MapCoordinatorVixen.Live.Orchestrator
- PlaceResultVixen.Live.Cluster
- PlacementDecisionVixen.Live.Orchestrator
- PlacementDirectorVixen.Live.Orchestrator
- PlacementEventVixen.Live.Abstractions
- ProcessPlacementVixen.Live.Placement.Process
- ProcessPlacementTestsVixen.Live.Placement.Process.Tests
- RealmVixen.Live.Realm
- RealmEndpointConverterVixen.Live.Cluster
- RealmHostTestsVixen.Live.Realm.Tests
- RealmInstanceVixen.Live.Abstractions
- RealmSignalsVixen.Live.Abstractions
- RealmSpecVixen.Live.Abstractions
- RealmSpecTestsVixen.Live.Abstractions.Tests
- RunningVixen.Live.Placement.Kubernetes
- ShardCandidateVixen.Live.Orchestrator
- ShardGrainVixen.Live.Orchestrator
- ShardLifecycleVixen.Live.Orchestrator
- ShardLifecycleTestsVixen.Live.Orchestrator.Tests
- ShardReportVixen.Live.Cluster
- TransferPrepareVixen.Live.Transfer
- TransferTicketVixen.Live.Abstractions