namespace SHH.MjpegPlayer
{
///
/// 会话信息
///
public class SessionInfo
{
#region Key
/// 流标识
public string? Key => $"{DeviceId}#{TypeCode}";
#endregion
#region DeviceId
/// 设备类型
public string? DeviceId { get; set; }
#endregion
#region TypeCode
/// 类型编码
public string? TypeCode { get; set; }
#endregion
#region ClientIp
/// 客户端 IP
public string? ClientIp { get; set; }
#endregion
#region ClientPort
/// 客户端端口
public int ClientPort { get; set; }
#endregion
#region Message
/// 消息
public string? Message { get; set; }
#endregion
#region AcceptTime
/// 接入时间
public DateTime AcceptTime { get; set; }
#endregion
#region Counter
/// 计数器
public SumByTime? Counter { get; init; }
#endregion
// =======================================================
// [新增] 专门给诊断大屏用的属性,前端可直接读取数值
// =======================================================
/// 接收帧率 (源头健康度)
public int RecvFps
{
get
{
if (Counter == null || Counter.TotalSecond == null) return 0;
// 从字典中安全获取 "接收帧数"
if (Counter.TotalSecond.TryGetValue("接收帧数", out uint val))
{
return (int)val;
}
return 0;
}
}
/// 播放/发送帧率 (客户端健康度)
public int PlayFps
{
get
{
if (Counter == null || Counter.TotalSecond == null) return 0;
// 从字典中安全获取 "播放帧数"
if (Counter.TotalSecond.TryGetValue("播放帧数", out uint val))
{
return (int)val;
}
return 0;
}
}
}
}