LiteNetTransport
ITransport over LiteNetLib.
Nebula · Packages/com.1by3.nebula/Runtime/Transport/LiteNetTransport.cspublic sealed class LiteNetTransport : ITransport, INetEventListenerITransport over LiteNetLib. Sequenced maps to DeliveryMethod.Sequenced, everything else to DeliveryMethod.ReliableOrdered. Two LiteNetLib channels are used so a large reliable message cannot head-of-line block the transform stream. Events are queued by LiteNetLib and drained on the caller's thread inside Poll.
Constructors
LiteNetTransport
public LiteNetTransport(string name);
public LiteNetTransport(string name, int disconnectTimeoutMs, int pingIntervalMs);A transport whose links end after disconnectTimeoutMs without a packet from the remote, and that sends a keep-alive ping every pingIntervalMs. The ping interval is kept to at least 10 ms and the timeout to at least twice the ping interval.
Fields
ConnectionKey
public const string ConnectionKey = "nebula-v1";DefaultDisconnectTimeoutMs
public const int DefaultDisconnectTimeoutMs = 8000;The disconnect timeout a transport gets when none is given: 8 s without a packet ends a link.
DefaultPingIntervalMs
public const int DefaultPingIntervalMs = 500;The keep-alive ping interval a transport gets when none is given.
Properties
DisconnectTimeoutMs
public int DisconnectTimeoutMs { get; }Milliseconds without a packet from the remote after which a link ends with TransportDisconnectReason.Timeout.
PingIntervalMs
public int PingIntervalMs { get; }Milliseconds between keep-alive pings.
Name
public string Name { get; }IsRunning
public bool IsRunning { get; }LocalPort
public int LocalPort { get; }Methods
Listen
public void Listen(int port);StartClient
public void StartClient();Connect
public int Connect(string host, int port);Disconnect
public void Disconnect(int peerId);IsConnected
public bool IsConnected(int peerId);RoundTripMs
public int RoundTripMs(int peerId);Send
public void Send(int peerId, Delivery delivery, ArraySegment<byte> payload);Poll
public void Poll(Action<TransportEvent> handler);Flush
public void Flush();Stop
public void Stop();Dispose
public void Dispose();