2017-10-25 12 views
2

SignalRを使用して送受信するデータにサーバーに接続するUWPアプリケーションがあります。UWPアプリケーションでSignalRデータの使用をプログラム的に追跡する

私の接続が使用しているデータの量(1日あたり)を追跡したいと思います。

アプリからすべてのインターネット使用状況を追跡することもできます。そのため、特にSignalRをターゲティングするのではなく、一般的な手法も役立ちます。

誰にも提案はありますか?私は(https://docs.microsoft.com/en-us/dotnet/framework/network-programming/how-to-configure-network-tracing? - UWPでは使用できません)カスタムMicrosoft.AspNet.SignalR.Client.Http.IHttpClientを実装するに見ても、ネットワークトレースしている

が@Ipsitガウルによるこの技術はうまく動作しますが、私は少ししかし

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); 
} 

答えて

1

この意志をそれを修正する必要がありましたあなたのために働く -

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; 
} 
+0

ありがとう、私は少し調整する必要があったが、これは素晴らしい作品 – Sam

関連する問題