← Cloudflare Realtime / realtime / turn
Generovat přihlašovací údaje
Cloudflare vydá klíče TURN, tyto klíče ale nelze použít jako přihlašovací údaje pro turn.cloudflare.com. Chcete-li používat TURN, musíte vytvořit přihlašovací údaje s vypršující hodnotou TTL.
Vytvoření TURN klíče
Chcete-li vytvořit přihlašovací údaje TURN, musíte nejprve vytvořit klíč TURN pomocí Dashboard ↗, nebo API.
Klíč TURN byste měli uchovávat na straně serveru (nesdílejte jej s prohlížečem ani aplikací). Klíč TURN je dlouhodobě platné tajemství, které umožňuje generovat neomezené množství krátkodoběji platných přihlašovacích údajů TURN pro klienty TURN.
S klíčem TURN můžete:
- Generujte přihlašovací údaje TURN s omezenou platností
- Odvolat dříve vydaná pověření TURN
Vytvoření přihlašovacích údajů
Pro každého uživatele TURN byste měli generovat krátkodobé přihlašovací údaje. K jejich vytvoření potřebujete backendovou službu, která pomocí vašeho TURN Token ID a API tokenu přihlašovací údaje vygeneruje. Ta provede API volání podobné tomuto:
curl https://rtc.live.cloudflare.com/v1/turn/keys/$TURN_KEY_ID/credentials/generate-ice-servers \
--header "Authorization: Bearer $TURN_KEY_API_TOKEN" \
--header "Content-Type: application/json" \
--data '{"ttl": 86400}'201 (Created) odpověď níže pak můžete předat své frontendové aplikaci:
{
"iceServers": [
{
"urls": [
"stun:stun.cloudflare.com:3478",
"stun:stun.cloudflare.com:53"
]
},
{
"urls": [
"turn:turn.cloudflare.com:3478?transport=udp",
"turn:turn.cloudflare.com:53?transport=udp",
"turn:turn.cloudflare.com:3478?transport=tcp",
"turn:turn.cloudflare.com:80?transport=tcp",
"turns:turn.cloudflare.com:5349?transport=tcp",
"turns:turn.cloudflare.com:443?transport=tcp"
],
"username": "bc91b63e2b5d759f8eb9f3b58062439e0a0e15893d76317d833265ad08d6631099ce7c7087caabb31ad3e1c386424e3e",
"credential": "ebd71f1d3edbc2b0edae3cd5a6d82284aeb5c3b8fdaa9b8e3bf9cec683e0d45fe9f5b44e5145db3300f06c250a15b4a0"
}
]
}Použijte iceServers následovně při vytváření instance RTCPeerConnection:
const myPeerConnection = new RTCPeerConnection({
iceServers: [
{
urls: [
"stun:stun.cloudflare.com:3478",
"stun:stun.cloudflare.com:53"
]
},
{
urls: [
"turn:turn.cloudflare.com:3478?transport=udp",
"turn:turn.cloudflare.com:53?transport=udp",
"turn:turn.cloudflare.com:3478?transport=tcp",
"turn:turn.cloudflare.com:80?transport=tcp",
"turns:turn.cloudflare.com:5349?transport=tcp",
"turns:turn.cloudflare.com:443?transport=tcp"
],
"username": "bc91b63e2b5d759f8eb9f3b58062439e0a0e15893d76317d833265ad08d6631099ce7c7087caabb31ad3e1c386424e3e",
"credential": "ebd71f1d3edbc2b0edae3cd5a6d82284aeb5c3b8fdaa9b8e3bf9cec683e0d45fe9f5b44e5145db3300f06c250a15b4a0"
},
],
}); ttl hodnotu lze upravit tak, aby krátkodobý klíč vypršel po určité době. Tato hodnota by měla být delší než doba, po kterou očekáváte, že uživatelé budou službu TURN využívat. Pokud například používáte TURN pro aplikaci pro videokonference, měla by být hodnota nastavena na nejdelší videohovor, který v aplikaci očekáváte.
Při používání krátkodobých přihlašovacích údajů TURN s WebRTC lze tyto údaje během relace WebRTC obnovit pomocí RTCPeerConnection setConfiguration() ↗ API.
Odvolat pověření
Krátkodobé přihlašovací údaje lze také odvolat před vypršením jejich TTL pomocí volání API, například takto:
curl --request POST \
https://rtc.live.cloudflare.com/v1/turn/keys/$TURN_KEY_ID/credentials/$USERNAME/revoke \
--header "Authorization: Bearer $TURN_KEY_API_TOKEN"A 204 (No Content) odpověď se vrátí, pokud je přihlašovací údaj úspěšně zneplatněn.