public static IConnectionStatistics GetConnectionStatistics(RakNetConnection connection) { var result = new RakNetConnectionStatistics(); using (var stats = connection._rakPeer.GetStatistics(connection._rakPeer.GetSystemAddressFromGuid(connection._guid))) { result.PacketLossRate = stats.packetlossLastSecond; result.BytesPerSecondLimitationType = stats.isLimitedByOutgoingBandwidthLimit ? BPSLimitationType.OutgoingBandwidth : (stats.isLimitedByCongestionControl ? BPSLimitationType.CongestionControl : BPSLimitationType.None); result.BytesPerSecondLimit = (long)(stats.isLimitedByOutgoingBandwidthLimit ? stats.BPSLimitByOutgoingBandwidthLimit : stats.BPSLimitByCongestionControl); result._queuedBytes = stats.bytesInSendBuffer.ToArray(); result._queuedPackets = stats.messageInSendBuffer.ToArray(); } return(result); }
public IConnectionStatistics GetConnectionStatistics() { return(RakNetConnectionStatistics.GetConnectionStatistics(this)); }