36 पॉइंट द्वारा xguru 2025-10-27 | 8 टिप्पणियां | WhatsApp पर शेयर करें
  • सिर्फ कुछ पंक्तियों के 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 टिप्पणियां

 
kimjoin2 2025-10-27

क्या TURN सर्वर पूर्वज लोग उपलब्ध कराते हैं?

 
helio 2025-10-28

लगता है 'stun:stun.cloudflare.com:3478' source में hardcoded है

 
kimjoin2 2025-10-28

stun नहीं, turn है।
stun सिर्फ़ इतना बताता है कि stun के हिसाब से तुम कौन हो, इसलिए कुछ public server उपलब्ध हैं,
लेकिन turn को ट्रैफ़िक relay करना पड़ता है, इसलिए (महंगा होने की वजह से) या तो पैसे देकर इस्तेमाल करना पड़ता है या खुद सेटअप करना पड़ता है।
उदाहरण) https://github.com/coturn/coturn
ऐसा वाला।

कई मामलों में सिर्फ़ stun से communication हो जाता है, लेकिन इसे बस सीधा-सीधा "हो जाता है" कहना थोड़ा.....
हो...... तो जाता है..... लेकिन... उँह, कुछ ऐसा सा एहसास है।

 
skageektp 2025-10-29

अगर यह p2p matching है, तो क्या TURN की ज़रूरत नहीं होनी चाहिए?

 
kimjoin2 2025-10-29

यह इस बात पर निर्भर करेगा कि WebRTC में आप जिस "p2p matching" की बात कर रहे हैं, उसका आशय क्या है।

  1. ऐसी स्थिति जहाँ दोनों पक्ष UDP के जरिए packet communication कर सकते हों
  2. ऐसी स्थिति जहाँ दोनों पक्ष केवल STUN द्वारा बताए गए address को जानते हों

अगर 1 वाली स्थिति है, तो जैसा आपने कहा, TURN की ज़रूरत नहीं है।
2 वाली स्थिति में भी, अगर हालात अच्छे हों और दोनों के बीच UDP communication सफल हो गया हो, तो TURN की ज़रूरत नहीं है।

2 वाली स्थिति में, अगर दोनों के बीच UDP से packet communication विफल हो जाए, तब TURN की ज़रूरत पड़ती है।

विफल होने के कारण ये हो सकते हैं:

  • peer symmetric NAT के पीछे हो, इसलिए STUN से पता चला address (का port) इस्तेमाल न किया जा सके, या
  • नेटवर्क के बीच कहीं भी सिर्फ web traffic (80, 443) की अनुमति हो, या
  • नेटवर्क के बीच कहीं भी UDP blocked हो, या
  • एक पक्ष केवल ipv4 इस्तेमाल करता हो और दूसरा केवल ipv6, या
  • वगैरह

ऐसी स्थितियों में TURN इस्तेमाल करना पड़ता है।

(ipv4 only <-> ipv6 only काम नहीं करता, यह बात मुझे memory check करते-करते पहली बार पता चली।)

 
skageektp 2025-10-30

हाँ, मेरा मतलब 2 नंबर से है। आपने कहा था 'server के बिना आपस में जुड़ना', 'library', लेकिन क्या आप इससे कुछ ज़्यादा ही उम्मीद नहीं कर रहे हैं...

 
kimjoin2 2025-10-30

आप किस हिस्से की बात करना चाहते हैं?

  1. STUN जो address (+port) बताता है, सिर्फ उसी के आधार पर कनेक्ट किया जा सकता है, इसलिए TURN server की ज़रूरत नहीं है। इसलिए "server के बिना आपस में कनेक्ट" जैसी अभिव्यक्ति टेक्स्ट के हिसाब से सही है।
    -> अगर बात यही है, तो शायद मेरी जानकारी पुरानी हो गई है। जो बात मुझे पता है (और मैंने साझा की थी), उसके बाद स्थिति में क्या बदलाव आया है, यह बता दें तो आभारी रहूँगा~!
  2. TURN server की ज़रूरत है, लेकिन यह एक library है, तो इतना तो चलने देना चाहिए।
    -> skageektp-ssi ने जो कहा वह सही है। library है, तो इतना माना जा सकता है। मैं ज़रा ज़्यादा संवेदनशील हो गया था.

मैं
3. ठीक से इस्तेमाल करना हो तो सिर्फ STUN काफ़ी नहीं है और TURN चाहिए, लेकिन बढ़ा-चढ़ाकर कहा गया है~
यही बात कहना चाह रहा था.

 
kimjoin2 2025-10-29

मैं 1 और 2 नंबर की व्याख्या को इस प्रकार सुधारना चाहूँगा.

  1. ऐसी स्थिति जिसमें आपस में UDP के जरिए पैकेट कम्युनिकेशन संभव हो -> ऐसी स्थिति जिसमें दोनों peers आपस में UDP के जरिए पैकेट कम्युनिकेशन कर सकें
  2. ऐसी स्थिति जिसमें दोनों पक्ष सिर्फ STUN द्वारा बताए गए पते को जानते हों -> ऐसी स्थिति जिसमें दोनों peers सिर्फ STUN द्वारा बताए गए पते को जानते हों

इसे इस तरह संशोधित करता हूँ। मूल लेख में गलतफ़हमी की गुंजाइश है।