以编程方式跟踪 UWP 应用中的 SignalR 数据使用情况
Programmatically tracking SignalR data usage in a UWP app
我有一个连接到服务器以使用 SignalR 发送和接收数据的 UWP 应用。
我想跟踪我的连接使用的数据量(每天)。
从应用程序跟踪所有互联网使用情况也是可以接受的,因此一种通用技术而不是专门针对 SignalR 也是有用的。
有人有什么建议吗?我研究了实现自定义 Microsoft.AspNet.SignalR.Client.Http.IHttpClient
和网络跟踪(https://docs.microsoft.com/en-us/dotnet/framework/network-programming/how-to-configure-network-tracing - 在 UWP 上不可用?)
@Ipsit Gaur 的这项技术效果很好,不过我不得不稍微修改一下
var internetConnectionProfile = NetworkInformation.GetInternetConnectionProfile();
if (internetConnectionProfile != null)
{
var networkUsage = await internetConnectionProfile.GetNetworkUsageAsync(DateTimeOffset.UtcNow.Date, DateTimeOffset.UtcNow, DataUsageGranularity.PerDay, new NetworkUsageStates()).AsTask();
totalBytesSentToday = networkUsage.Aggregate(0ul, (memo, nu) => memo + nu.BytesSent);
totalBytesReceivedToday = networkUsage.Aggregate(0ul, (memo, nu) => memo + nu.BytesReceived);
}
这对你有用 -
string localDataUsage = string.Empty;
DateTime CurrTime = DateTime.Now;
TimeSpan TimeDiff = new TimeSpan(1, 0, 0);
ConnectionProfile InternetConnectionProfile = NetworkInformation.GetInternetConnectionProfile();
if (InternetConnectionProfile == null)
{
LocalUsageData.Text = "Not connected to Internet" + "\n";
}
else
{
var LocalUsage = InternetConnectionProfile.GetNetworkUsageAsync(CurrTime.Subtract(TimeDiff), CurrTime);
localDataUsage = "Local Data Usage:\n";
localDataUsage += " Bytes Sent : " + LocalUsage.BytesSent + "\n";
localDataUsage += " Bytes Received : " + LocalUsage.BytesReceived + "\n";
LocalUsageData.Text = localDataUsage;
}
我有一个连接到服务器以使用 SignalR 发送和接收数据的 UWP 应用。
我想跟踪我的连接使用的数据量(每天)。
从应用程序跟踪所有互联网使用情况也是可以接受的,因此一种通用技术而不是专门针对 SignalR 也是有用的。
有人有什么建议吗?我研究了实现自定义 Microsoft.AspNet.SignalR.Client.Http.IHttpClient
和网络跟踪(https://docs.microsoft.com/en-us/dotnet/framework/network-programming/how-to-configure-network-tracing - 在 UWP 上不可用?)
@Ipsit Gaur 的这项技术效果很好,不过我不得不稍微修改一下
var internetConnectionProfile = NetworkInformation.GetInternetConnectionProfile();
if (internetConnectionProfile != null)
{
var networkUsage = await internetConnectionProfile.GetNetworkUsageAsync(DateTimeOffset.UtcNow.Date, DateTimeOffset.UtcNow, DataUsageGranularity.PerDay, new NetworkUsageStates()).AsTask();
totalBytesSentToday = networkUsage.Aggregate(0ul, (memo, nu) => memo + nu.BytesSent);
totalBytesReceivedToday = networkUsage.Aggregate(0ul, (memo, nu) => memo + nu.BytesReceived);
}
这对你有用 -
string localDataUsage = string.Empty;
DateTime CurrTime = DateTime.Now;
TimeSpan TimeDiff = new TimeSpan(1, 0, 0);
ConnectionProfile InternetConnectionProfile = NetworkInformation.GetInternetConnectionProfile();
if (InternetConnectionProfile == null)
{
LocalUsageData.Text = "Not connected to Internet" + "\n";
}
else
{
var LocalUsage = InternetConnectionProfile.GetNetworkUsageAsync(CurrTime.Subtract(TimeDiff), CurrTime);
localDataUsage = "Local Data Usage:\n";
localDataUsage += " Bytes Sent : " + LocalUsage.BytesSent + "\n";
localDataUsage += " Bytes Received : " + LocalUsage.BytesReceived + "\n";
LocalUsageData.Text = localDataUsage;
}