Simple script for testing if we are correctly gathering the ice candidates in the browser.
This commit is contained in:
47
examples/aws-agentcore/scripts/turn-test.js
Normal file
47
examples/aws-agentcore/scripts/turn-test.js
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
// Simple script for testing if we are correctly gathering the ice candidates from a specific
|
||||||
|
// turn server in the browser
|
||||||
|
(async () => {
|
||||||
|
console.clear();
|
||||||
|
console.log("Starting ICE candidate test…");
|
||||||
|
|
||||||
|
const turnServer = {
|
||||||
|
urls: "turn:turn.cloudflare.com:80?transport=tcp",
|
||||||
|
username: "username",
|
||||||
|
credential: "password"
|
||||||
|
};
|
||||||
|
|
||||||
|
const pc = new RTCPeerConnection({
|
||||||
|
iceServers: [ turnServer ],
|
||||||
|
iceTransportPolicy: "all" // or "relay" if you want only TURN
|
||||||
|
});
|
||||||
|
|
||||||
|
let gotRelay = false;
|
||||||
|
|
||||||
|
pc.onicecandidate = event => {
|
||||||
|
if (!event.candidate) {
|
||||||
|
console.log("ICE gathering finished.");
|
||||||
|
if (gotRelay) {
|
||||||
|
console.log("%cTURN relay candidate FOUND ✔️", "color: green; font-weight: bold;");
|
||||||
|
} else {
|
||||||
|
console.log("%cNo TURN relay candidates detected ❌", "color: red; font-weight: bold;");
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const cand = event.candidate.candidate;
|
||||||
|
console.log("ICE Candidate:", cand);
|
||||||
|
|
||||||
|
if (cand.includes("typ relay")) {
|
||||||
|
console.log("%cTURN relay candidate detected!", "color: green;");
|
||||||
|
gotRelay = true;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// Create empty data channel (required to trigger ICE)
|
||||||
|
pc.createDataChannel("test");
|
||||||
|
|
||||||
|
const offer = await pc.createOffer();
|
||||||
|
await pc.setLocalDescription(offer);
|
||||||
|
|
||||||
|
console.log("Gathering ICE candidates…");
|
||||||
|
})();
|
||||||
Reference in New Issue
Block a user