Vixen
02b45cc4
csharp
public enum Channel

The delivery guarantee a message is sent with.

No guide page documents this yet — the page shows what the code says about itself.

Remarks

Four channels rather than two, because "reliable or not" is the wrong question twice over. A chat line must arrive but does not care what order it arrives in relative to an inventory update; a position update must not be applied after a newer one has already been applied, but losing it costs nothing because another follows in 50 ms.

A transport that cannot honour a channel natively implements it — the guarantee is the contract, not the mechanism. Vixen.Net.Transport.Local honours all four for free because an in-process queue loses and reorders nothing.

Fields and properties (4)

  • Reliable

    Arrives, exactly once, in the order it was sent. Retransmitted until acknowledged, and held at the receiver until its predecessors arrive. The default, and the expensive one: a single lost packet stalls everything behind it on this channel.

  • ReliableUnordered

    Arrives, exactly once, in whatever order it gets there. Retransmitted until acknowledged but never held for a predecessor, so one loss delays one message rather than the queue behind it. The right channel for independent events — a chat line, a pickup, an RPC whose arguments do not depend on the last one.

  • Unreliable

    May be lost, duplicated or reordered, and is never retransmitted. The channel for state that supersedes itself: transforms, animation, anything where the next packet makes this one irrelevant.

  • Sequenced

    May be lost, and is never retransmitted, but is never delivered out of order: a packet older than one already delivered is dropped rather than applied. What Unreliable wants to be for a value that must never go backwards.

Used by (92, showing 40)

  • AvatarControllerMultiplayer
  • GameClientMultiplayer
  • GameServerMultiplayer
  • MatchProtocolMultiplayer
  • PeerVoiceChat
  • RelayVoiceChat
  • Vixen_Samples_Multiplayer_CombatantReplicatorMultiplayer
  • Vixen_Samples_Multiplayer_VitalsReplicatorMultiplayer
  • AwaitableRpcTestsVixen.Net.Tests
  • ChannelExtensionsVixen.Net
  • ChannelReceiverVixen.Net.Transport.Udp
  • ChannelTestsVixen.Net.Tests
  • ClientRpcAttributeVixen.Net
  • CompositeTransportVixen.Net.Transport.Composite
  • CompositeTransportTestsVixen.Net.Transport.Composite.Tests
  • CounterVixen.Net.Tests
  • CountingEventsVixen.Net.Fuzz
  • DeliveryVixen.Net.Fuzz
  • DroppingTransportVixen.Net.Fuzz
  • EventRecorderVixen.Net.Tests
  • GeneratedTransformVixen.Net.Generators.Tests
  • GeneratedTurretVixen.Net.Generators.Tests
  • HandWrittenTransformReplicatorVixen.Net.Generators.Tests
  • HandshakeTargetVixen.Net.Fuzz
  • HealthReplicatorVixen.Net.Tests
  • IComponentReplicatorVixen.Net
  • IRpcTransportVixen.Net
  • ISessionMessageHandlerVixen.Net
  • ITransportVixen.Net
  • ITransportEventsVixen.Net
  • InjectingTransportVixen.Net.Fuzz
  • LocalTransportVixen.Net.Transport.Local
  • LocalTransportTestsVixen.Net.Transport.Local.Tests
  • LoopbackVixen.Net.Tests
  • MessageRecorderVixen.Net.Tests
  • NetworkAnimatorParametersReplicatorVixen.Net.Animation
  • NetworkAnimatorReplicatorVixen.Net.Animation
  • NetworkAudioSourceReplicatorVixen.Net.Audio
  • NetworkBonesReplicatorVixen.Net.Animation
  • NetworkRigidBodyReplicatorVixen.Net.Physics