- सिर्फ कुछ पंक्तियों के code से सर्वर के बिना आपस में जुड़े multiplayer webapp को implement करने में मदद करने वाली library
- browser के WebRTC पर आधारित, public network को signaling channel की तरह इस्तेमाल करके P2P matching और communication को automate करती है
- BitTorrent, Nostr, MQTT, IPFS, Supabase, Firebase में से किसी एक को चुनकर सर्वर के बिना peer discovery किया जा सकता है
- signaling के बाद का app data किसी मध्यवर्ती माध्यम से गुज़रे बिना P2P + E2E encryption के साथ भेजा जाता है
- Rooms/broadcasting, automatic serialization, बड़े data के लिए chunking/throttling, progress events, session data encryption, stream metadata जैसी high-level abstractions प्रदान करती है
- सिर्फ browser ही नहीं, Node/Deno/Bun में भी काम करती है, और TURN server configuration, React hooks, server-side execution जैसी production-ready सुविधाओं का समर्थन करती है
- public infrastructure को बिना किसी configuration के इस्तेमाल करने का तरीका होने से यह तरह-तरह के experiments और prototyping के लिए उपयुक्त है
8 टिप्पणियां
क्या TURN सर्वर पूर्वज लोग उपलब्ध कराते हैं?
लगता है
'stun:stun.cloudflare.com:3478'source में hardcoded हैstun नहीं, turn है।
stun सिर्फ़ इतना बताता है कि stun के हिसाब से तुम कौन हो, इसलिए कुछ public server उपलब्ध हैं,
लेकिन turn को ट्रैफ़िक relay करना पड़ता है, इसलिए (महंगा होने की वजह से) या तो पैसे देकर इस्तेमाल करना पड़ता है या खुद सेटअप करना पड़ता है।
उदाहरण) https://github.com/coturn/coturn
ऐसा वाला।
कई मामलों में सिर्फ़ stun से communication हो जाता है, लेकिन इसे बस सीधा-सीधा "हो जाता है" कहना थोड़ा.....
हो...... तो जाता है..... लेकिन... उँह, कुछ ऐसा सा एहसास है।
अगर यह p2p matching है, तो क्या TURN की ज़रूरत नहीं होनी चाहिए?
यह इस बात पर निर्भर करेगा कि WebRTC में आप जिस "p2p matching" की बात कर रहे हैं, उसका आशय क्या है।
अगर 1 वाली स्थिति है, तो जैसा आपने कहा, TURN की ज़रूरत नहीं है।
2 वाली स्थिति में भी, अगर हालात अच्छे हों और दोनों के बीच UDP communication सफल हो गया हो, तो TURN की ज़रूरत नहीं है।
2 वाली स्थिति में, अगर दोनों के बीच UDP से packet communication विफल हो जाए, तब TURN की ज़रूरत पड़ती है।
विफल होने के कारण ये हो सकते हैं:
ऐसी स्थितियों में TURN इस्तेमाल करना पड़ता है।
(ipv4 only <-> ipv6 onlyकाम नहीं करता, यह बात मुझे memory check करते-करते पहली बार पता चली।)हाँ, मेरा मतलब 2 नंबर से है। आपने कहा था 'server के बिना आपस में जुड़ना', 'library', लेकिन क्या आप इससे कुछ ज़्यादा ही उम्मीद नहीं कर रहे हैं...
आप किस हिस्से की बात करना चाहते हैं?
-> अगर बात यही है, तो शायद मेरी जानकारी पुरानी हो गई है। जो बात मुझे पता है (और मैंने साझा की थी), उसके बाद स्थिति में क्या बदलाव आया है, यह बता दें तो आभारी रहूँगा~!
-> skageektp-ssi ने जो कहा वह सही है। library है, तो इतना माना जा सकता है। मैं ज़रा ज़्यादा संवेदनशील हो गया था.
मैं
3. ठीक से इस्तेमाल करना हो तो सिर्फ STUN काफ़ी नहीं है और TURN चाहिए, लेकिन बढ़ा-चढ़ाकर कहा गया है~
यही बात कहना चाह रहा था.
मैं 1 और 2 नंबर की व्याख्या को इस प्रकार सुधारना चाहूँगा.
इसे इस तरह संशोधित करता हूँ। मूल लेख में गलतफ़हमी की गुंजाइश है।