files/en-us/web/api/rtcicecandidatestats/deleted/index.md
{{APIRef("WebRTC")}}
The {{domxref("RTCIceCandidateStats")}} dictionary's
deleted property indicates whether or not the candidate
has been deleted or released.
A Boolean value indicating whether or not the candidate has been deleted or released.
If this value is true, the candidate described by the
{{domxref("RTCIceCandidateStats")}} object is no longer under consideration. The exact
meaning varies depending on the type of candidate:
true means the candidate has been deleted as described by
{{RFC(5245, "", "8.3")}}.true indicates that the candidate's network resources have
been released. This generally mean that any associated socket(s) have been closed and
released.true means the candidate's {{Glossary("TURN")}} allocation
is no longer active.The net result is the same; the candidate is no longer under consideration if this
value is true.
In this example, {{domxref("Window.setInterval", "setInterval()")}} is used to set up a function that runs periodically to display the latest statistics for candidates. Only candidates which have not been deleted are included in the output.
setInterval(() => {
myPeerConnection.getStats(null).then((stats) => {
let statsOutput = "";
stats.forEach((report) => {
if (
(stats.type === "local-candidate" ||
stats.type === "remote.candidate") &&
!stats.deleted
) {
statsOutput +=
`<h2>Report: ${report.type}</h3>\n<strong>ID:</strong> ${report.id}
\n` +
`<strong>Timestamp:</strong> ${report.timestamp}
\n`;
// Now the statistics for this report; we intentionally drop the ones we
// sorted to the top above
Object.keys(report).forEach((statName) => {
if (
statName !== "id" &&
statName !== "timestamp" &&
statName !== "type"
) {
statsOutput += `<strong>${statName}:</strong> ${report[statName]}
\n`;
}
});
}
});
document.querySelector(".stats-box").innerHTML = statsOutput;
});
}, 1000);
{{Specifications}}
{{Compat}}