filterNetwork method
Implementation
NetworkMetrics? filterNetwork(List<StatsReport> reports) {
var remoteCandidate = "";
var localCandidate = "";
var CandidatePair = "";
reports.map((report) {
var value = report.values["value"];
var key = report.values["key"];
if (value["type"] == "candidate-pair" &&
value["state"] == "succeeded" &&
value["writable"] == true) {
remoteCandidate = value["remoteCandidateId"];
localCandidate = value["localCandidateId"];
CandidatePair = key;
}
});
if (CandidatePair == "") {
return null;
}
var val = reports[0].values[CandidatePair];
var ret = NetworkMetrics();
ret.localIP = reports[0].values[localCandidate]!["ip"];
ret.remoteIP = reports[0].values[remoteCandidate]!["ip"];
ret.localPort = reports[0].values[localCandidate]!["port"];
ret.remotePort = reports[0].values[remoteCandidate]!["port"];
ret.packetsReceived = val!["packetsReceived"];
ret.packetsSent = val["packetsSent"];
ret.bytesSent = val["bytesSent"];
ret.bytesReceived = val["bytesReceived"];
ret.availableIncomingBitrate = val["availableIncomingBitrate"];
ret.availableOutgoingBitrate = val["availableOutgoingBitrate"];
ret.currentRoundTripTime = val["currentRoundTripTime"];
ret.totalRoundTripTime = val["totalRoundTripTime"];
ret.priority = val["priority"];
ret.timestamp = val["timestamp"];
return ret;
}