कुछ बातें यहाँ स्पष्ट किया जा करने के लिए कर रहे हैं:
GET /?service=turn&username=mbzrxpgjys
जो एक JSON देता है, सिर्फ एक सर्वर से समय-सीमित मोड़ साख पुन: प्राप्त करने के लिए सुझाव दिया uri, आप की जरूरत नहीं है इसका पालन करें, आपकी यूरी सिर्फ /?giveMeCredentials
हो सकती है। असल में, मैं इस डेटा को पुनः प्राप्त करने के लिए अपने सॉकेट कनेक्शन का उपयोग करता हूं, जेसन प्रतिक्रिया के साथ सीधे http कॉल नहीं। दिन का अंत, इससे कोई फ़र्क नहीं पड़ता कि आप (क्लाइंट जो टर्न कहलाता है) को तब तक प्राप्त करें जब तक कि वे मान्य हों।
आप सीधे टर्न सर्वर से कोई अनुरोध नहीं करते हैं, कोई अतिरिक्त एपीआई टर्न सर्वर पर कॉल आपके नियंत्रण में है।
जब आप टर्न सर्वर शुरू कर रहे हैं तो आप एक गुप्त कुंजी आवंटित करते हैं, इसे एक डीबी (इस प्रकार गतिशील रूप से परिवर्तनीय) से लिया जा सकता है, लेकिन आलसी है कि मैं बस हार्ड कोडित हूं, और इसे बदली कॉन्फ़िगरेशन फ़ाइल में दिया , आरईएसटी एपीआई को सक्षम करना भी याद रखें। बारी आदेश का हिस्सा है, turnserver ... --use-auth-secret --static-auth-secret=MySecretKey
अब के रूप में, अपने अनुप्रयोग सर्वर में, आप एक ही गुप्त कुंजी का उपयोग करें, साख उत्पन्न करने के लिए उपयोगकर्ता नाम होगा, यह यूनिक्स टाइमस्टैम्प और कुछ स्ट्रिंग है (यादृच्छिक या उपयोगकर्ता आईडी या कुछ और हो सकता है) :
द्वारा पृथक और पासवर्ड आपकी गुप्त कुंजी के साथ उपयोगकर्ता नाम का एचएमएसी होगा।
यूनिक्स टाइमस्टैम्प के बारे में, यह समय टर्न सर्वर में है जब तक आपके क्रेडेंशियल्स को वैध नहीं होना चाहिए, जिससे यह गणना हो कि आप अपने एप्लिकेशन सर्वर और अपने टर्न सर्वर के बीच घड़ी के समय के अंतर को ध्यान में रखते हैं ।
कुछ नमूना मोड़ सर्वर बताते हुए के लिए एक और question
आदेश करने के लिए अपने जवाब से लिया कोड:
var crypto = require('crypto');
function getTURNCredentials(name, secret){
var unixTimeStamp = parseInt(Date.now()/1000) + 24*3600, // this credential would be valid for the next 24 hours
username = [unixTimeStamp, name].join(':'),
password,
hmac = crypto.createHmac('sha1', secret);
hmac.setEncoding('base64');
hmac.write(username);
hmac.end();
password = hmac.read();
return {
username: username,
password: password
};
}
:
turnserver -v --syslog -a -L xx.xxx.xx.xx -X yy.yyy.yyy.yy -E zz.zzz.zz.zzz --max-bps=3000000 -f -m 3 --min-port=32355 --max-port=65535 --use-auth-secret --static-auth-secret=my_secret --realm=north.gov --cert=turn_server_cert.pem --pkey=turn_server_pkey.pem --log-file=stdout -q 100 -Q 300 --cipher-list=ALL
node.js
अनुप्रयोग सर्वर में बारी साख बनाने के लिए कोड
इसका उपयोग करने के लिए ब्राउज़र कोड:
...
iceServers:[
{
urls: "turn:turn_server_ip",
username: username,
credential:password
}
...