using System; using System.Net; namespace Crysome.Common.Network.Transport; public interface ITransportSession : IDisposable, IAsyncDisposable { bool IsAlive { get; } IPEndPoint RemoteEndPoint { get; } IPEndPoint LocalEndPoint { get; } double RttMs { get; } double LossRate { get; } long BytesSent { get; } long BytesRecv { get; } event Action ReliableReceived; event Action UnreliableFrameReceived; event Action CongestionChanged; event Action Disconnected; void SendReliable(ReadOnlySpan payload); void SendReliableBulk(ReadOnlySpan payload); void SendUnreliableScreen(byte packetTypeId, ReadOnlySpan payload); void SendPacketUnreliable(ReadOnlySpan payload); void SendFin(); }