ወደ ዋናው ይዘት ዝለል

ክፍል

ቴክኖሎጂ

እውነተኛው የDueli ግብር በሁለት ንብር፦ በቀላል ቋንቋ የተብራራ ማብራሪያ እና የምህንድስት እይታ።

ይህ ገጽ Dueli በእውነት የሚጠቀምባቸውን ቴክኖሎጂዎች በሁለት ንብር ያብራራል፦ ለሁሉም በቀላል ቋንቋ እይታ እና ለባለሙያዎች የምህንድስት እይታ። አሁን ያለው ኮድ ሳይጠቀምበት ምንም ቴክኖሎጂ አይዘረዘርም።

በቀላሉ

Dueli በአሳሽ ውስጥ በCloudflare ዓለም አቀፍ ኔትወርክ ላይ ይሄዳል። ሁለት ተፎካካሪዎች በመሣሪያቸው መካከል ቀጥታ ቪዲዮ ጥሪ ውስጥ ይገናኛሉ (WebRTC peer-to-peer)፤ ኔትወርክ ቀጥታውን መንገድ ሲከለክል የTURN ሪሌ ግንኙነቱን ያላል።

ውድድር በሚሄድበት ጊዜ አሳሹ ሁለቱን የካሜራ እይታዎች ወደ አንድ ምስል ያዋህዳል እና እንደ አጭር 5 ሰከንድ ክፍሎች ይቀረጻል። ክፍሎቹ ሲፈጠሩ ይሰቀላሉ፣ በቅደም ተከተል ሊታዩ ይችላሉ፣ እና ውድድሩ ከጠናቀቀ በኋላ ወደ ሙሉ እንደገና ማጫወት ይሰባሰባሉ።

የተቀረጹ ውድድሮች እንደ MP4 ፋይል ማውረድ ይችላሉ። ቀረጻው መለወጥ ሲያስፈልገው መለወጡ በጎብኚው አሳሽ ውስጥ በFFmpeg.wasm ይሄዳል፤ ስለዚህ ፋይሉ ወደ ውጭ የመለወጫ አገልግሎት አይላክም።

የመድረክ መረጃ በD1 ውስጥ ይኖራል፣ ገጾች እና APIs በCloudflare ላይ በHono እና TypeScript ተሠርተዋል፣ እና መገናኛው Tailwind CSS ይጠቀማል። የቀጥታ ዘመናዊነት በSSE እና polling ይደርሳል።

ለምህንድስት ባለሙያዎች

Runtime፦ Cloudflare Pages/Workers በHono 4 በTypeScript ላይ። D1 (SQLite) የመረጃ ቋቱ ነው። Vite የWorker bundle ያሠራል፣ Tailwind CSS 4 የመገናኛውን አቅረብ ያቀርባል፣ እና esbuild የአሳሽ entry points ያሠራል።

ቀጥታ ሚዲያ፦ የአሳሽ RTCPeerConnection አስተናጋጅና ተፎካካሪ መካከል WebRTC ይሸከማል። ICE ሰርቨሮች በእያንዳንዱ ክፍለ ጊዜ ከGET /api/signaling/ice-servers ይሰጣሉ፤ Cloudflare Calls TURN (TURN_TOKEN_ID እና TURN_API_TOKEN) ወይም በራስ የተናገጠ coturn (TURN_URL እና TURN_SECRET) ሪሌ ማድረግ ይችላል፣ ሁለቱም ካልተዋቀሩ የSTUN ብቻ መለወጫ አለ።

መቅረጽ፦ የcanvas compositor ሁለቱን እይታዎች ያሳልፋል፣ እና MediaRecorder በ5 ሰከንድ ክፍል ይለቀቃል። አስተናጋጁ እያንዳንዱን ክፍል በPOST /api/chunks/register ይመዘግባል (ከውድድሩ፣ ከቅደም ተከተል እና ከባይት ገደብ ጋር የተገናኘ አጭር አንድ ጊዜ ቁልፍ)፣ ያስቀልላል፣ በGET /verify ያረጋግጣል እና POST /receipt ያዋጅሃል። ማጫወት GET /api/chunks/playlist/:id ያነባል፣ እና በነባሩ የማጠናቀቅ ደረጃ VOD ይፈጥራል።

ማውረድ፦ @ffmpeg/core 0.12.10 በበራስ የተናገጠ የአሳሽ ሠራተኛ ውስጥ ለMP4 መለወጥ ይሄዳል፣ ቀደምት ከMP4 ጋር ለሚጣጣሙ ቀረጻዎች የመዋቅር ሪማክስ መንገድ አለ። ሂደት እና ማህደም ገደቦች በደንበኛ አገልግሎት ውስጥ ይታከላሉ።

ቀጥታ፦ በGET /api/sse በኩል SSE የቀጥታ ዘመናዊነት ይሸከማል፣ እና signaling በHTTP polling ይጠቀማል፤ የምርት መንገዱ WebSocket አይጠቀምም።

ጥራት፦ Vitest የክፍል እና የUI ስምምነቶችን ይሸፍናል፣ እና Playwright የመጨረሻ እስከ መጨረሻ የአሳሽ ፍሰቶችን ይሸፍናል። Markdown ሰነዶች በmarked ይቀርባሉ፣ እና PostCSS ከAutoprefixer ጋር የCSS ፍሰቱን ያጠናቅቃል።

በዚህ ማከማቻ ውስጥ ያለው ግብር

  • Cloudflare Pages / Workers አስተናጋጅ እና የሰርቨር runtime
  • Cloudflare D1 (SQLite) የመተግበሪያ መረጃ ቋት
  • Hono 4 HTTP መንገዶች፣ ገጾች እና API
  • TypeScript 5 ለሰርቨር እና ለደንበኛ የተጠበቀ ምንጭ
  • Tailwind CSS 4 + PostCSS + Autoprefixer የመገናኛ አቅረብ እና የCSS ፍሰት
  • Vite 7 + esbuild የWorker bundle እና የአሳሽ entry points
  • WebRTC (RTCPeerConnection) + TURN/STUN በተሳታፊዎች መካከል ቀጥታ ኦዲዮ እና ቪዲዮ
  • Canvas compositor + MediaRecorder በአሳሽ ውስጥ በ5 ሰከንድ የተቀረጹ ክፍሎች
  • FFmpeg.wasm (@ffmpeg/core 0.12.10) በአሳሽ ውስጥ የMP4 መለወጥ እና ማውረድ
  • marked 17 ለበትዕዛዝ የተያዙ ሰነዶች Markdown ማቅረብ
  • Vitest 5 የክፍል እና የUI የመሞከሪያ ስብስብ
  • Playwright ከመጀመሪያ እስከ መጨረሻ የአሳሽ ሙከራዎች
  • Wrangler 4 የCloudflare የልማት እና የdeployment መሣሪያዎች
  • SSE + HTTP polling ከሚዲያ መንገዱ ውጭ የቀጥታ ዘመናዊነት

ዝርዝሩ በpackage.json እና በማከማቻው ውስጥ በእውነት ባለው ላይ የተገደለ ነው። የቴክኒክ መግለጫ ነው፣ ሽርክና ወይም ምክር የማይሆን።

ወደ መመሪያ ማዕከል ተመለስ