ΠžΠ±Π»Π°Ρ‡Π½ΠΈ ΠΈΠ³Ρ€ΠΈ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Π½Π° WebRTC: p2p, ΠΌΡƒΠ»Ρ‚ΠΈΠΏΠ»Π΅ΠΉΡŠΡ€, Π½ΡƒΠ»Π΅Π²ΠΎ забавянС

ΠžΠ±Π»Π°Ρ‡Π½ΠΈ ΠΈΠ³Ρ€ΠΈ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Π½Π° WebRTC: p2p, ΠΌΡƒΠ»Ρ‚ΠΈΠΏΠ»Π΅ΠΉΡŠΡ€, Π½ΡƒΠ»Π΅Π²ΠΎ забавянС
Π‘ΠΎΡ„Ρ‚ΡƒΠ΅Ρ€ ΠΊΠ°Ρ‚ΠΎ услуга, инфраструктура ΠΊΠ°Ρ‚ΠΎ услуга, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΊΠ°Ρ‚ΠΎ услуга, ΠΊΠΎΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΊΠ°Ρ‚ΠΎ услуга, видСоконфСрСнция ΠΊΠ°Ρ‚ΠΎ услуга ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ Ρ‰Π΅ ΠΊΠ°ΠΆΠ΅Ρ‚Π΅ Π·Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΈΡ‚Π΅ ΠΈΠ³Ρ€ΠΈ ΠΊΠ°Ρ‚ΠΎ услуга? Π’Π΅Ρ‡Π΅ ΠΈΠΌΠ° няколко ΠΎΠΏΠΈΡ‚Π° Π·Π° създаванС Π½Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΈ ΠΈΠ³Ρ€ΠΈ (Cloud Gaming), ΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Stadia, наскоро стартирана ΠΎΡ‚ Google. Π‘Ρ‚Π°Π΄ΠΈΠΈ Π½Π΅ Π΅ Π½ΠΎΠ² Π·Π° WebRTC, Π½ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ WebRTC ΠΏΠΎ ΡΡŠΡ‰ΠΈΡ Π½Π°Ρ‡ΠΈΠ½?

Thanh Nguyen Ρ€Π΅ΡˆΠΈ Π΄Π° тСства Ρ‚Π°Π·ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π² своя ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ CloudRetro. CloudRetro Π΅ Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° Pion, популярСн WebRTC Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° Go (благодаря Π¨ΠΎΡƒΠ½Ρƒ ΠΎΡ‚ Π΅ΠΊΠΈΠΏΠ° Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Pion Π·Π° ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° ΠΈΠΌ с Ρ‚Π°Π·ΠΈ статия). Π’ Ρ‚Π°Π·ΠΈ статия Thanh ΠΏΡ€Π°Π²ΠΈ ΠΎΠ±Ρ‰ ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° своя ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π³ΠΎΠ²ΠΎΡ€ΠΈ Π·Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΅ Π½Π°ΡƒΡ‡ΠΈΠ» ΠΈ ΠΊΠ°ΠΊΠ²ΠΈ прСдизвикатСлства Π΅ срСщнал, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈΠ».

Π’Π»ΠΈΠ·Π°Π½Π΅

ΠœΠΈΠ½Π°Π»Π°Ρ‚Π° Π³ΠΎΠ΄ΠΈΠ½Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Google обяви Stadia, бях ΠΏΠΎΡ€Π°Π·Π΅Π½. Π˜Π΄Π΅ΡΡ‚Π° Π΅ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΡƒΠ½ΠΈΠΊΠ°Π»Π½Π° ΠΈ новаторска, Ρ‡Π΅ постоянно сС Ρ‡ΡƒΠ΄Π΅Ρ… ΠΊΠ°ΠΊ Ρ‚ΠΎΠ²Π° ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ Π΅ възмоТно със ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈΡ‚Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ. Π–Π΅Π»Π°Π½ΠΈΠ΅Ρ‚ΠΎ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π° ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π΅ Ρ‚Π°Π·ΠΈ Ρ‚Π΅ΠΌΠ° ΠΌΠ΅ ΠΏΠΎΠ΄Ρ‚ΠΈΠΊΠ½Π° Π΄Π° създам моя собствСна вСрсия Π½Π° ΠΎΠ±Π»Π°Ρ‡Π½Π° ΠΈΠ³Ρ€Π° с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄. Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ бСшС просто фантастичСн. По-Π΄ΠΎΠ»Ρƒ Π±ΠΈΡ… искал Π΄Π° сподСля процСса Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π²ΡŠΡ€Ρ…Ρƒ моя годишСн ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

TLDR: вСрсия с ΠΊΡ€Π°Ρ‚ΡŠΠΊ слайд с Π°ΠΊΡ†Π΅Π½Ρ‚ΠΈ

Π—Π°Ρ‰ΠΎ ΠΎΠ±Π»Π°Ρ‡Π½ΠΈΡ‚Π΅ ΠΈΠ³Ρ€ΠΈ са Π±ΡŠΠ΄Π΅Ρ‰Π΅Ρ‚ΠΎ

Вярвам, Ρ‡Π΅ Cloud Gaming скоро Ρ‰Π΅ сС ΠΏΡ€Π΅Π²ΡŠΡ€Π½Π΅ Π² Π½ΠΎΠ²ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ Π½Π΅ само ΠΈΠ³Ρ€ΠΈ, Π½ΠΎ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ области Π½Π° ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π½ΠΈΡ‚Π΅ Π½Π°ΡƒΠΊΠΈ. ΠžΠ±Π»Π°Ρ‡Π½ΠΈΡ‚Π΅ ΠΈΠ³Ρ€ΠΈ са Π²ΡŠΡ€Ρ…ΡŠΡ‚ Π½Π° ΠΌΠΎΠ΄Π΅Π»Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚/ΡΡŠΡ€Π²ΡŠΡ€. Π’ΠΎΠ·ΠΈ ΠΌΠΎΠ΄Π΅Π» максимизира ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° задния ΠΊΡ€Π°ΠΉ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° интСрфСйса Ρ‡Ρ€Π΅Π· хостванС Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° Π½Π° ΠΈΠ³Ρ€Π°Ρ‚Π° Π½Π° ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡Π΅Π½ ΡΡŠΡ€Π²ΡŠΡ€ ΠΈ ΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎ ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° изобраТСния/Π°ΡƒΠ΄ΠΈΠΎ към ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. Π‘ΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Ρ‚Π΅ΠΆΠΊΠ°Ρ‚Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ Π²Π΅Ρ‡Π΅ Π½Π΅ Π΅ ΠΎΠ±Π΅ΠΊΡ‚ Π½Π° Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€Π½ΠΈ ограничСния.

Google Stadia Π²ΠΈ позволява Π΄Π° ΠΈΠ³Ρ€Π°Π΅Ρ‚Π΅ AAA ΠΈΠ³Ρ€ΠΈ (Ρ‚.Π΅. Ρ…ΠΈΡ‚ΠΎΠ²ΠΈ ΠΈΠ³Ρ€ΠΈ ΠΎΡ‚ висок клас) Π½Π° интСрфСйс ΠΊΠ°Ρ‚ΠΎ YouTube. Π‘ΡŠΡ‰Π°Ρ‚Π° мСтодология ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈ към Π΄Ρ€ΡƒΠ³ΠΈ Ρ‚Π΅ΠΆΠΊΠΈ ΠΎΡ„Π»Π°ΠΉΠ½ прилоТСния ΠΊΠ°Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π° систСма ΠΈΠ»ΠΈ 2D/3D Π³Ρ€Π°Ρ„ΠΈΡ‡Π΅Π½ Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΈ Π΄Ρ€. Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π³ΠΈ изпълнявамС стабилно Π½Π° устройства с ниски спСцификации Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ.

ΠžΠ±Π»Π°Ρ‡Π½ΠΈ ΠΈΠ³Ρ€ΠΈ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Π½Π° WebRTC: p2p, ΠΌΡƒΠ»Ρ‚ΠΈΠΏΠ»Π΅ΠΉΡŠΡ€, Π½ΡƒΠ»Π΅Π²ΠΎ забавянС
Π‘ΡŠΠ΄Π΅Ρ‰Π΅Ρ‚ΠΎ Π½Π° Ρ‚Π°Π·ΠΈ тСхнология: прСдставСтС си, Π°ΠΊΠΎ Microsoft Windows 10 Ρ€Π°Π±ΠΎΡ‚ΠΈ Π² Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π° Chrome?

ΠžΠ±Π»Π°Ρ‡Π½ΠΈΡ‚Π΅ ΠΈΠ³Ρ€ΠΈ са тСхничСски Ρ‚Ρ€ΡƒΠ΄Π½ΠΈ

Π˜Π³Ρ€ΠΈΡ‚Π΅ са Π΅Π΄Π½Π° ΠΎΡ‚ ΠΎΠ½Π΅Π·ΠΈ Ρ€Π΅Π΄ΠΊΠΈ области, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ сС изисква постоянна Π±ΡŠΡ€Π·Π° рСакция Π½Π° потрСбитСля. Ако ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Π²Ρ€Π΅ΠΌΠ΅ срСщнСм забавянС ΠΎΡ‚ 2 сСкунди ΠΏΡ€ΠΈ ΠΊΠ»ΠΈΠΊΠ²Π°Π½Π΅ Π²ΡŠΡ€Ρ…Ρƒ страница, Ρ‚ΠΎΠ²Π° Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΠ»ΠΈΠ²ΠΎ. Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎΡ‚ΠΎΡ†ΠΈΡ‚Π΅ Π½Π° ΠΆΠΈΠ²ΠΎ са склонни Π΄Π° изостават с няколко сСкунди, Π½ΠΎ всС ΠΏΠ°ΠΊ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ доста голяма използваСмост. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, Π°ΠΊΠΎ ΠΈΠ³Ρ€Π°Ρ‚Π° чСсто сС забавя с 500ms, просто Π½Π΅ Π΅ възмоТно Π΄Π° сС ΠΈΠ³Ρ€Π°Π΅. ΠΠ°ΡˆΠ°Ρ‚Π° Ρ†Π΅Π» Π΅ Π΄Π° постигнСм ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ниска латСнтност, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Ρ€Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Ρ…ΠΎΠ΄Π° ΠΈ мСдията Π΄Π° Π΅ възмоТно Π½Π°ΠΉ-ΠΌΠ°Π»ΠΊΠ°. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ традиционният ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π·Π° ΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎ Π²ΠΈΠ΄Π΅ΠΎ Π½Π΅ Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΠΌ Ρ‚ΡƒΠΊ.

ΠžΠ±Π»Π°Ρ‡Π½ΠΈ ΠΈΠ³Ρ€ΠΈ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Π½Π° WebRTC: p2p, ΠΌΡƒΠ»Ρ‚ΠΈΠΏΠ»Π΅ΠΉΡŠΡ€, Π½ΡƒΠ»Π΅Π²ΠΎ забавянС
ΠžΠ±Ρ‰ шаблон Π·Π° ΠΎΠ±Π»Π°Ρ‡Π½Π° ΠΈΠ³Ρ€Π°

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ CloudRetro

Π Π΅ΡˆΠΈΡ… Π΄Π° създам тСстова ΠΏΡ€ΠΎΠ±Π° Π½Π° ΠΎΠ±Π»Π°Ρ‡Π½Π° ΠΈΠ³Ρ€Π°, Π·Π° Π΄Π° видя Π΄Π°Π»ΠΈ всичко Ρ‚ΠΎΠ²Π° Π΅ възмоТно с Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° строги ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ ограничСния. Π˜Π·Π±Ρ€Π°Ρ… Golang Π·Π° доказатСлство Π½Π° концСпцията, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Ρ‚ΠΎΠ²Π° Π΅ Π΅Π·ΠΈΠΊΡŠΡ‚, с ΠΊΠΎΠΉΡ‚ΠΎ съм Π½Π°ΠΉ-Π·Π°ΠΏΠΎΠ·Π½Π°Ρ‚ ΠΈ Π΅ подходящ Π·Π° Ρ‚Π°Π·ΠΈ рСализация ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈ, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΏΠΎ-късно Ρ€Π°Π·Π±Ρ€Π°Ρ…. Go Π΅ проста ΠΈ сС Ρ€Π°Π·Π²ΠΈΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡŠΡ€Π·ΠΎ; ΠšΠ°Π½Π°Π»ΠΈΡ‚Π΅ Π² Go са чудСсни Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° многопоточност.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ CloudRetro.io Π΅ услуга Π·Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΈ ΠΈΠ³Ρ€ΠΈ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Π·Π° Ρ€Π΅Ρ‚Ρ€ΠΎ ΠΈΠ³Ρ€ΠΈ. Π¦Π΅Π»Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π΅ Π΄Π° внСсС Π½Π°ΠΉ-ΡƒΠ΄ΠΎΠ±Π½ΠΎΡ‚ΠΎ ΠΈΠ³Ρ€ΠΎΠ²ΠΎ изТивяванС Π² Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ Ρ€Π΅Ρ‚Ρ€ΠΎ ΠΈΠ³Ρ€ΠΈ ΠΈ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈ ΠΌΡƒΠ»Ρ‚ΠΈΠΏΠ»Π΅ΠΉΡŠΡ€.
ΠŸΠΎΠ²Π΅Ρ‡Π΅ Π·Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ Ρ‚ΡƒΠΊ: https://github.com/giongto35/cloud-game.

CloudRetro функционалност

CloudRetro ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ρ€Π΅Ρ‚Ρ€ΠΎ ΠΈΠ³Ρ€ΠΈ, Π·Π° Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅ силата Π½Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΈΡ‚Π΅ ΠΈΠ³Ρ€ΠΈ. Π’ΠΎΠ²Π° Π²ΠΈ позволява Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»Π½ΠΈ ΠΈΠ³Ρ€ΠΎΠ²ΠΈ изТивявания.

  • ΠŸΡ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ Π½Π° ΠΈΠ³Ρ€Π°Ρ‚Π°
    • НСзабавно Π²ΡŠΠ·ΠΏΡ€ΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ ΠΏΡ€ΠΈ отварянС Π½Π° страница; Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ изтСглянС ΠΈ инсталиранС
    • Π Π°Π±ΠΎΡ‚ΠΈ Π½Π° ΠΌΠΎΠ±ΠΈΠ»Π΅Π½ Π±Ρ€Π°ΡƒΠ·ΡŠΡ€, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ софтуСр Π·Π° стартиранС

  • Π˜Π³Ρ€ΠΎΠ²ΠΈΡ‚Π΅ сСсии ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС сподСлят ΠΌΠ΅ΠΆΠ΄Ρƒ мноТСство устройства ΠΈ Π΄Π° сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Π² ΠΎΠ±Π»Π°ΠΊΠ° Π·Π° слСдващо Π²Π»ΠΈΠ·Π°Π½Π΅
  • Π˜Π³Ρ€Π°Ρ‚Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€Π΅Π΄Π°Π²Π° ΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎ ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° я ΠΈΠ³Ρ€Π°Π΅Ρ‚Π΅ с няколко ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ навСднъТ:
    • Crowdplay ΠΊΠ°Ρ‚ΠΎ TwitchPlayPokemon, само ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΌΠ΅ΠΆΠ΄ΡƒΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½ΠΈ ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π² Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅
    • ΠžΡ„Π»Π°ΠΉΠ½ ΠΈΠ³Ρ€ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½. Много ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° играят Π±Π΅Π· настройка Π½Π° ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°. Samurai Shodown Π²Π΅Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ³Ρ€Π°Π΅ с 2 ΠΈΠ³Ρ€Π°Ρ‡ΠΈ ΠΏΡ€Π΅Π· ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° CloudRetro

    ΠžΠ±Π»Π°Ρ‡Π½ΠΈ ΠΈΠ³Ρ€ΠΈ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Π½Π° WebRTC: p2p, ΠΌΡƒΠ»Ρ‚ΠΈΠΏΠ»Π΅ΠΉΡŠΡ€, Π½ΡƒΠ»Π΅Π²ΠΎ забавянС
    Π”Π΅ΠΌΠΎ вСрсия Π½Π° ΠΎΠ½Π»Π°ΠΉΠ½ ΠΌΡƒΠ»Ρ‚ΠΈΠΏΠ»Π΅ΠΉΡŠΡ€ ΠΈΠ³Ρ€Π° Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ устройства

    Π˜Π½Ρ„Ρ€Π°ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°

    Изисквания ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡ‡Π΅Π½ стСк

    По-Π΄ΠΎΠ»Ρƒ Π΅ Π΄Π°Π΄Π΅Π½ списък с изисквания, ΠΊΠΎΠΈΡ‚ΠΎ поставих, ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

    1. Π•Π΄ΠΈΠ½ ΠΈΠ³Ρ€Π°Ρ‡
    Π’ΠΎΠ²Π° изискванС ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ‚Π²ΡŠΡ€Π΄Π΅ Π²Π°ΠΆΠ½ΠΎ ΠΈ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ Ρ‚ΡƒΠΊ, Π½ΠΎ Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ ΠΌΠΎΠΈΡ‚Π΅ ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈ ΠΈΠ·Π²ΠΎΠ΄ΠΈ, Ρ‚ΠΎ Π΄ΡŠΡ€ΠΆΠΈ ΠΎΠ±Π»Π°Ρ‡Π½ΠΈΡ‚Π΅ ΠΈΠ³Ρ€ΠΈ възмоТно Π½Π°ΠΉ-Π΄Π°Π»Π΅Ρ‡ ΠΎΡ‚ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ стрийминг услуги. Ако сС ΡΡŠΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΠΌ Π²ΡŠΡ€Ρ…Ρƒ ΠΈΠ³Ρ€Π°Ρ‚Π° Π·Π° Π΅Π΄ΠΈΠ½ ΠΈΠ³Ρ€Π°Ρ‡, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° сС ΠΎΡ‚ΡŠΡ€Π²Π΅ΠΌ ΠΎΡ‚ цСнтрализирания ΡΡŠΡ€Π²ΡŠΡ€ ΠΈΠ»ΠΈ CDN, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π½Π΅ Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄Π° ΠΏΡ€Π΅Π΄Π°Π²Π°ΠΌΠ΅ ΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎ към маситС. ВмСсто Π΄Π° ΠΊΠ°Ρ‡Π²Π°Ρ‚ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ към ΠΏΠΎΠ³Π»ΡŠΡ‰Π°Ρ‰ ΡΡŠΡ€Π²ΡŠΡ€ ΠΈΠ»ΠΈ Π΄Π° ΠΏΡ€Π΅Π΄Π°Π²Π°Ρ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ към Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ WebSocket ΡΡŠΡ€Π²ΡŠΡ€, ΠΏΠΎΡ‚ΠΎΡ†ΠΈΡ‚Π΅ ΠΎΡ‚ услуги сС ΠΏΡ€Π΅Π΄Π°Π²Π°Ρ‚ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ към потрСбитСля Ρ‡Ρ€Π΅Π· WebRTC ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΡΠΊΠ° Π²Ρ€ΡŠΠ·ΠΊΠ°.

    2. МСдиСн ΠΏΠΎΡ‚ΠΎΠΊ с ниска латСнтност
    ΠšΠΎΠ³Π°Ρ‚ΠΎ Ρ‡Π΅Ρ‚Π° Π·Π° Stadia, чСсто Π²ΠΈΠΆΠ΄Π°ΠΌ WebRTC спомСнат Π² някои статии. Π Π°Π·Π±Ρ€Π°Ρ…, Ρ‡Π΅ WebRTC Π΅ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½Π° тСхнология ΠΈ Π΅ чудСсна Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² ΠΎΠ±Π»Π°Ρ‡Π½ΠΈ ΠΈΠ³Ρ€ΠΈ. WebRTC Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΠΉΡ‚ΠΎ прСдоставя Π½Π° ΡƒΠ΅Π± Π±Ρ€Π°ΡƒΠ·ΡŠΡ€ΠΈ ΠΈ ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ прилоТСния комуникация Π² Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Ρ‡Ρ€Π΅Π· прост API. Π’ΠΎΠΉ осигурява peer-to-peer ΡΠ²ΡŠΡ€Π·Π°Π½ΠΎΡΡ‚, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ Π΅ Π·Π° ΠΌΠ΅Π΄ΠΈΠΈ ΠΈ ΠΈΠΌΠ° Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ стандартни ΠΊΠΎΠ΄Π΅Ρ†ΠΈ ΠΊΠ°Ρ‚ΠΎ VP8 ΠΈ H264.

    Π”Π°Π΄ΠΎΡ… ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π½Π° осигуряванСто Π½Π° възмоТно Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€ΠΎΡ‚ΠΎ потрСбитСлско изТивяванС ΠΏΡ€Π΅Π΄ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½Π΅Ρ‚ΠΎ Π½Π° висококачСствСна Π³Ρ€Π°Ρ„ΠΈΠΊΠ°. Π’ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΠ° сС допускат някои Π·Π°Π³ΡƒΠ±ΠΈ. Google Stadia ΠΈΠΌΠ° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° ΡΡ‚ΡŠΠΏΠΊΠ° Π·Π° намаляванС Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° ΠΈ ΠΊΠ°Π΄Ρ€ΠΈΡ‚Π΅ сС ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Ρ‚ Π΄ΠΎ ΠΏΠΎ-високо качСство, ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΏΡ€Π΅Π΄Π°Π΄Π΅Π½ΠΈ Π½Π° ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΠΈΡ‚Π΅.

    3. Π Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° инфраструктура с гСографско ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅
    НСзависимо ΠΊΠΎΠ»ΠΊΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ΠΈ са Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΡŠΡ‚ Π·Π° компрСсиранС ΠΈ ΠΊΠΎΠ΄ΡŠΡ‚, ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° всС ΠΎΡ‰Π΅ Π΅ Ρ€Π΅ΡˆΠ°Π²Π°Ρ‰ΠΈΡΡ‚ Ρ„Π°ΠΊΡ‚ΠΎΡ€, ΠΊΠΎΠΉΡ‚ΠΎ допринася Π½Π°ΠΉ-ΠΌΠ½ΠΎΠ³ΠΎ Π·Π° латСнтността. АрхитСктурата трябва Π΄Π° ΠΈΠΌΠ° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Π·Π° сдвояванС Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ Π½Π°ΠΉ-Π±Π»ΠΈΠ·ΠΎ Π΄ΠΎ потрСбитСля, Π·Π° Π΄Π° сС Π½Π°ΠΌΠ°Π»ΠΈ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° двупосочно ΠΏΡŠΡ‚ΡƒΠ²Π°Π½Π΅ (RTT). АрхитСктурата трябва Π΄Π° ΠΈΠΌΠ° 1 ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€ ΠΈ няколко стрийминг ΡΡŠΡ€Π²ΡŠΡ€Π°, Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΏΠΎ цСлия свят: БАЩ Π—Π°ΠΏΠ°Π΄, БАЩ Π˜Π·Ρ‚ΠΎΠΊ, Π•Π²Ρ€ΠΎΠΏΠ°, Π‘ΠΈΠ½Π³Π°ΠΏΡƒΡ€, ΠšΠΈΡ‚Π°ΠΉ. Всички стрийминг ΡΡŠΡ€Π²ΡŠΡ€ΠΈ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ напълно ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ΠΈ. БистСмата ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π° разпространСниСто си, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ сС ΠΏΡ€ΠΈΡΡŠΠ΅Π΄ΠΈΠ½ΠΈ ΠΈΠ»ΠΈ напуснС ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°. По Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½, ΠΏΡ€ΠΈ голям Ρ‚Ρ€Π°Ρ„ΠΈΠΊ, добавянСто Π½Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΡΡŠΡ€Π²ΡŠΡ€ΠΈ позволява Ρ…ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»Π½ΠΎ ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅.

    4. Π‘ΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ с Π±Ρ€Π°ΡƒΠ·ΡŠΡ€
    ΠžΠ±Π»Π°Ρ‡Π½ΠΈΡ‚Π΅ ΠΈΠ³Ρ€ΠΈ са Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€ΠΈ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ изискват ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠ° ΠΎΡ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ Π΅ възмоТно Π΄Π° сС стартира Π² Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π°. Π‘Ρ€Π°ΡƒΠ·ΡŠΡ€ΠΈΡ‚Π΅ ΠΏΠΎΠΌΠ°Π³Π°Ρ‚ Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΡ‚ΠΎ изТивяванС възмоТно Π½Π°ΠΉ-ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π·Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅, ΠΊΠ°Ρ‚ΠΎ ΠΈΠΌ спСстяват инсталиранСто Π½Π° софтуСр ΠΈ Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€. Π‘Ρ€Π°ΡƒΠ·ΡŠΡ€ΠΈΡ‚Π΅ ΡΡŠΡ‰ΠΎ ΠΏΠΎΠΌΠ°Π³Π°Ρ‚ Π΄Π° сС осигури крос-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π·Π° ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ ΠΈ настолни вСрсии. Π—Π° щастиС, WebRTC сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° Π΄ΠΎΠ±Ρ€Π΅ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π±Ρ€Π°ΡƒΠ·ΡŠΡ€ΠΈ.

    5. Ясно раздСлянС Π½Π° интСрфСйса Π½Π° ΠΈΠ³Ρ€Π°Ρ‚Π° ΠΈ услугата
    Π“Π»Π΅Π΄Π°ΠΌ Π½Π° услугата Π·Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΈ ΠΈΠ³Ρ€ΠΈ ΠΊΠ°Ρ‚ΠΎ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°. ВсСки трябва Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ²ΡŠΡ€ΠΆΠ΅ всичко към ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°. Π‘Π΅Π³Π° съм ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Π» LibRetro с ΠΎΠ±Π»Π°Ρ‡Π½Π° услуга Π·Π° ΠΈΠ³Ρ€ΠΈ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ LibRetro ΠΏΡ€Π΅Π΄Π»Π°Π³Π° красив интСрфСйс Π·Π° Π΅ΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€ Π½Π° ΠΈΠ³Ρ€ΠΈ Π·Π° Ρ€Π΅Ρ‚Ρ€ΠΎ ΠΈΠ³Ρ€ΠΈ ΠΊΠ°Ρ‚ΠΎ SNES, GBA, PS.

    6. Π‘Ρ‚Π°ΠΈ Π·Π° ΠΌΡƒΠ»Ρ‚ΠΈΠΏΠ»Π΅ΠΉΡŠΡ€, Π³Ρ€ΡƒΠΏΠΎΠ²Π° ΠΈΠ³Ρ€Π° ΠΈ външно ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ (deep-link) с ΠΈΠ³Ρ€Π°Ρ‚Π°
    CloudRetro ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΈ Π³Π΅ΠΉΠΌΠΏΠ»Π΅ΠΈ ΠΊΠ°Ρ‚ΠΎ CrowdPlay ΠΈ Online MultiPlayer Π·Π° Ρ€Π΅Ρ‚Ρ€ΠΎ ΠΈΠ³Ρ€ΠΈ. Ако няколко ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ отворят Π΅Π΄Π½Π° ΠΈ ΡΡŠΡ‰Π° дълбока Π²Ρ€ΡŠΠ·ΠΊΠ° Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΊΠΎΠΌΠΏΡŽΡ‚Ρ€ΠΈ, Ρ‚Π΅ Ρ‰Π΅ видят Π΅Π΄Π½Π° ΠΈ ΡΡŠΡ‰Π° ΠΈΠ³Ρ€Π° Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΈ Π΄ΠΎΡ€ΠΈ Ρ‰Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΏΡ€ΠΈΡΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ към нСя.

    ОсвСн Ρ‚ΠΎΠ²Π°, ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΡΡ‚Π° Π½Π° ΠΈΠ³Ρ€Π°Ρ‚Π° сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Π² ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΡ‚ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅. Π’ΠΎΠ²Π° позволява Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π΄Π° ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Ρ‚ ΠΈΠ³Ρ€Π°Ρ‚Π° ΠΏΠΎ всяко Π²Ρ€Π΅ΠΌΠ΅ Π½Π° всяко Π΄Ρ€ΡƒΠ³ΠΎ устройство.

    7. Π₯ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»Π½ΠΎ ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅
    ΠšΠ°Ρ‚ΠΎ всСки SAAS Π² днСшно Π²Ρ€Π΅ΠΌΠ΅, ΠΎΠ±Π»Π°Ρ‡Π½ΠΈΡ‚Π΅ ΠΈΠ³Ρ€ΠΈ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½ΠΈ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Ρ…ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»Π½ΠΎ ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΈ. Π”ΠΈΠ·Π°ΠΉΠ½ΡŠΡ‚ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€-Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊ Π²ΠΈ позволява Π΄Π° добавятС ΠΏΠΎΠ²Π΅Ρ‡Π΅ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΡ†ΠΈ, Π·Π° Π΄Π° обслуТватС ΠΏΠΎΠ²Π΅Ρ‡Π΅ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ.

    8. НС Π΅ ΠΎΠ±Π²ΡŠΡ€Π·Π°Π½ с Π΅Π΄ΠΈΠ½ ΠΎΠ±Π»Π°ΠΊ
    Π˜Π½Ρ„Ρ€Π°ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° CloudRetro сС хоства ΠΎΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ доставчици Π½Π° ΠΎΠ±Π»Π°ΠΊ (Digital Ocean, Alibaba, пСрсонализиран доставчик) Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ€Π΅Π³ΠΈΠΎΠ½ΠΈ. Π Π°Π·Ρ€Π΅ΡˆΠ°Π²Π°ΠΌ Ρ€Π°Π±ΠΎΡ‚Π° Π² инфраструктурСн Docker ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°ΠΌ ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ настройки с bash скрипт, Π·Π° Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π° зависимост ΠΎΡ‚ Π΅Π΄ΠΈΠ½ доставчик Π½Π° ΠΎΠ±Π»Π°ΠΊ. ΠšΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°ΠΉΠΊΠΈ Ρ‚ΠΎΠ²Π° с NAT Traversal Π² WebRTC, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠΌΠ°ΠΌΠ΅ Π³ΡŠΠ²ΠΊΠ°Π²ΠΎΡΡ‚Ρ‚Π° Π΄Π° Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ CloudRetro Π½Π° всяка ΠΎΠ±Π»Π°Ρ‡Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΈ Π΄ΠΎΡ€ΠΈ машина Π½Π° всСки ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π».

    АрхитСктурСн Π΄ΠΈΠ·Π°ΠΉΠ½

    Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊ: (ΠΈΠ»ΠΈ ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ Π·Π° стрийминг, спомСнат ΠΏΠΎ-Π³ΠΎΡ€Π΅) ΡƒΠΌΠ½ΠΎΠΆΠ°Π²Π° ΠΈΠ³Ρ€ΠΈΡ‚Π΅, изпълнява Ρ‚Ρ€ΡŠΠ±ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° Π·Π° ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ ΠΈ ΠΏΡ€Π΅Π΄Π°Π²Π° ΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎ ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π°Ρ‚Π° мСдия към ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅. Worker СкзСмпляритС са разпространСни ΠΏΠΎ цСлия свят ΠΈ всСки worker ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° мноТСство потрСбитСлски сСсии Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

    ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€: отговаря Π·Π° сдвояванСто Π½Π° новия ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» с Π½Π°ΠΉ-подходящия стрийминг Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊ. ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€ΡŠΡ‚ ΠΊΠΎΠΌΡƒΠ½ΠΈΠΊΠΈΡ€Π° с Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΡ†ΠΈΡ‚Π΅ Ρ‡Ρ€Π΅Π· WebSocket.

    Π‘ΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΈΠ³Ρ€Π°Ρ‚Π°: Ρ†Π΅Π½Ρ‚Ρ€Π°Π»Π½ΠΎ ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡Π΅Π½ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π·Π° всички ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΡ Π½Π° ΠΈΠ³Ρ€Π°Ρ‚Π°. Π’ΠΎΠ²Π° Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ прСдоставя Π²Π°ΠΆΠ½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠ°Ρ‚ΠΎ дистанционно Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅/Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅.

    ΠžΠ±Π»Π°Ρ‡Π½ΠΈ ΠΈΠ³Ρ€ΠΈ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Π½Π° WebRTC: p2p, ΠΌΡƒΠ»Ρ‚ΠΈΠΏΠ»Π΅ΠΉΡŠΡ€, Π½ΡƒΠ»Π΅Π²ΠΎ забавянС
    АрхитСктура ΠΎΡ‚ Π½Π°ΠΉ-високо Π½ΠΈΠ²ΠΎ Π½Π° CloudRetro

    ΠŸΠ΅Ρ€ΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ скрипт

    ΠšΠΎΠ³Π°Ρ‚ΠΎ Π½ΠΎΠ² ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» ΠΎΡ‚Π²ΠΎΡ€ΠΈ CloudRetro Π² ΡΡ‚ΡŠΠΏΠΊΠΈ 1 ΠΈ 2, ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈ Π½Π° Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚Π° ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ, ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€ΡŠΡ‚, Π·Π°Π΅Π΄Π½ΠΎ със списък с Π½Π°Π»ΠΈΡ‡Π½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΡ†ΠΈ, сС изисква Π½Π° ΠΏΡŠΡ€Π²Π°Ρ‚Π° страница. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π°, Π² ΡΡ‚ΡŠΠΏΠΊΠ° 3, ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ изчислява Π·Π°ΠΊΡŠΡΠ½Π΅Π½ΠΈΡΡ‚Π° Π·Π° всички ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ HTTP ping заявка. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Ρ‚ΠΎΠ·ΠΈ списък със закъснСния сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π½Π° ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€Π°, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Ρ‚ΠΎΠΉ Π΄Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈ Π½Π°ΠΉ-подходящия Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊ, ΠΊΠΎΠΉΡ‚ΠΎ Π΄Π° обслуТва потрСбитСля. Π‘Ρ‚ΡŠΠΏΠΊΠ° 4 ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ създава ΠΈΠ³Ρ€Π°. Установява сС WebRTC стрийминг Π²Ρ€ΡŠΠ·ΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρƒ потрСбитСля ΠΈ назначСния Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊ.
    ΠžΠ±Π»Π°Ρ‡Π½ΠΈ ΠΈΠ³Ρ€ΠΈ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Π½Π° WebRTC: p2p, ΠΌΡƒΠ»Ρ‚ΠΈΠΏΠ»Π΅ΠΉΡŠΡ€, Π½ΡƒΠ»Π΅Π²ΠΎ забавянС
    ΠŸΠ΅Ρ€ΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ скрипт слСд ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏ

    Какво ΠΈΠΌΠ° Π²ΡŠΡ‚Ρ€Π΅ Π² Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠ°

    Π’Ρ€ΡŠΠ±ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅ Π·Π° ΠΈΠ³Ρ€ΠΈ ΠΈ стрийминг сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ΠΎ Π²ΡŠΡ‚Ρ€Π΅ Π² Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠ° ΠΈ обмСнят информация Ρ‚Π°ΠΌ Ρ‡Ρ€Π΅Π· интСрфСйса. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Ρ‚Π°Π·ΠΈ комуникация сС ΠΎΡΡŠΡ‰Π΅ΡΡ‚Π²ΡΠ²Π° Ρ‡Ρ€Π΅Π· ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π“ΠΎΠ»Π°Π½Π³ ΠΊΠ°Π½Π°Π»ΠΈ Π² ΡΡŠΡ‰ΠΈΡ процСс. Π‘Π»Π΅Π΄Π²Π°Ρ‰Π°Ρ‚Π° Ρ†Π΅Π» Π΅ сСгрСгацията, Ρ‚.Π΅. самостоятСлно стартиранС Π½Π° ΠΈΠ³Ρ€Π°Ρ‚Π° Π² Π΄Ρ€ΡƒΠ³ процСс.

    ΠžΠ±Π»Π°Ρ‡Π½ΠΈ ΠΈΠ³Ρ€ΠΈ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Π½Π° WebRTC: p2p, ΠΌΡƒΠ»Ρ‚ΠΈΠΏΠ»Π΅ΠΉΡŠΡ€, Π½ΡƒΠ»Π΅Π²ΠΎ забавянС
    ВзаимодСйствиС Π½Π° Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ

    Π“Π»Π°Π²Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ:

    • WebRTC: клиСнтски ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡ€ΠΈΠ΅ΠΌΠ° въвСТданС ΠΎΡ‚ потрСбитСля ΠΈ ΠΈΠ·Π²Π΅ΠΆΠ΄Π° ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π°Ρ‚Π° мСдия ΠΎΡ‚ ΡΡŠΡ€Π²ΡŠΡ€Π°.
    • Π•ΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€ Π½Π° ΠΈΠ³Ρ€Π°Ρ‚Π°: ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π° ΠΈΠ³Ρ€Π°Ρ‚Π°. Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° Libretro, систСмата Π΅ Π² ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π΄Π° стартира ΠΈΠ³Ρ€Π°Ρ‚Π° Π² ΡΡŠΡ‰ΠΈΡ процСс ΠΈ Π΄Π° ΠΏΡ€ΠΈΡ…Π²Π°Π½Π΅ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΎ ΠΌΠ΅Π΄ΠΈΠΈΡ‚Π΅ ΠΈ входния ΠΏΠΎΡ‚ΠΎΠΊ.
    • ΠšΠ°Π΄Ρ€ΠΈΡ‚Π΅ Π² ΠΈΠ³Ρ€Π°Ρ‚Π° сС улавят ΠΈ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‚ към Π΅Π½ΠΊΠΎΠ΄Π΅Ρ€Π°.
    • ΠšΠΎΠ΄Π΅Ρ€ Π·Π° изобраТСния/Π°ΡƒΠ΄ΠΈΠΎ: Ρ‚Ρ€ΡŠΠ±ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄ Π·Π° ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° ΠΌΠ΅Π΄ΠΈΠΉΠ½ΠΈ ΠΊΠ°Π΄Ρ€ΠΈ, ΠΊΠΎΠ΄ΠΈΡ€Π° Π³ΠΈ във Ρ„ΠΎΠ½ΠΎΠ² Ρ€Π΅ΠΆΠΈΠΌ ΠΈ ΠΈΠ·Π²Π΅ΠΆΠ΄Π° ΠΊΠΎΠ΄ΠΈΡ€Π°Π½ΠΈ изобраТСния/Π°ΡƒΠ΄ΠΈΠΎ.

    ИзпълнСниС

    CloudRetro Ρ€Π°Π·Ρ‡ΠΈΡ‚Π° Π½Π° WebRTC ΠΊΠ°Ρ‚ΠΎ основна тСхнология, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° сС потопя Π² Π΄Π΅Ρ‚Π°ΠΉΠ»ΠΈΡ‚Π΅ Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Golang, Ρ€Π΅ΡˆΠΈΡ… Π΄Π° говоря Π·Π° самия WebRTC. Π’ΠΎΠ²Π° Π΅ нСвСроятна част ΠΎΡ‚ тСхнологията, която ΠΌΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π·Π° постиганСто Π½Π° ΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎ ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ със закъснСниС ΠΏΠΎΠ΄ сСкунди.

    WebRTC

    WebRTC Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½ Π΄Π° осигурява висококачСствСни Π²Ρ€ΡŠΠ·ΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ равностойни ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ Π² собствСно ΠΌΠΎΠ±ΠΈΠ»Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π±Ρ€Π°ΡƒΠ·ΡŠΡ€ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‰ΠΈ прости API.

    NAT ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅

    WebRTC Π΅ извСстСн със своята функционалност NAT Traversal. WebRTC Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π·Π° peer-to-peer комуникация. НСговата Ρ†Π΅Π» Π΅ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈ Π½Π°ΠΉ-подходящия Π΄ΠΈΡ€Π΅ΠΊΡ‚Π΅Π½ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚, избягвайки NAT шлюзовС ΠΈ Π·Π°Ρ‰ΠΈΡ‚Π½ΠΈ стСни, Π·Π° peer-to-peer Ρ‡Ρ€Π΅Π· процСс, Π½Π°Ρ€Π΅Ρ‡Π΅Π½ ICE. ΠšΠ°Ρ‚ΠΎ част ΠΎΡ‚ Ρ‚ΠΎΠ·ΠΈ процСс ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ½ΠΈ интСрфСйси (API) Π½Π° WebRTC Π½Π°ΠΌΠΈΡ€Π°Ρ‚ вашия ΠΏΡƒΠ±Π»ΠΈΡ‡Π΅Π½ IP адрСс с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° STUN ΡΡŠΡ€Π²ΡŠΡ€ΠΈ ΠΈ Π³ΠΎ ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‰Π°Ρ‚ към Ρ€Π΅Π»Π΅ΠΉΠ΅Π½ ΡΡŠΡ€Π²ΡŠΡ€ (Π’ΠͺΠ Π’Π•Π’Π•), ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС установи Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ°.

    CloudRetro ΠΎΠ±Π°Ρ‡Π΅ Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° напълно Ρ‚Π°Π·ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚. НСговитС peer-to-peer Π²Ρ€ΡŠΠ·ΠΊΠΈ Π½Π΅ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ, Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ ΠΈ ΠΎΠ±Π»Π°Ρ‡Π½ΠΈ ΡΡŠΡ€Π²ΡŠΡ€ΠΈ. Π‘ΡŠΡ€Π²ΡŠΡ€Π½Π°Ρ‚Π° страна Π½Π° ΠΌΠΎΠ΄Π΅Π»Π° ΠΈΠΌΠ° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ограничСния Π·Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½Π° комуникация, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎ потрСбитСлско устройство. Π’ΠΎΠ²Π° Π²ΠΈ позволява Π΄Π° отварятС ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ входящи ΠΏΠΎΡ€Ρ‚ΠΎΠ²Π΅ ΠΈΠ»ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΈ IP адрСси, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ Π½Π΅ Π΅ Π·Π°Π΄ NAT.

    ΠŸΡ€Π΅Π΄ΠΈ Ρ‚ΠΎΠ²Π° исках Π΄Π° ΠΏΡ€Π΅Π²ΡŠΡ€Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π·Π° разпространСниС Π½Π° ΠΈΠ³Ρ€ΠΈ Π·Π° Cloud Gaming. Π˜Π΄Π΅ΡΡ‚Π° бСшС Π΄Π° сС ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π½Π° ΡΡŠΠ·Π΄Π°Ρ‚Π΅Π»ΠΈΡ‚Π΅ Π½Π° ΠΈΠ³Ρ€ΠΈ Π΄Π° прСдоставят ΠΈΠ³Ρ€ΠΈ ΠΈ рСсурси Π·Π° стрийминг. И ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Ρ‰Π΅ взаимодСйстват Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ с доставчицитС. По Ρ‚ΠΎΠ·ΠΈ Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ Π½Π°Ρ‡ΠΈΠ½ CloudRetro Π΅ просто срСдство Π·Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° стрийминг рСсурси Π½Π° Ρ‚Ρ€Π΅Ρ‚ΠΈ страни към ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅, ΠΊΠΎΠ΅Ρ‚ΠΎ Π³ΠΎ ΠΏΡ€Π°Π²ΠΈ ΠΏΠΎ-ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Ρ…ΠΎΡΡ‚ΠΈΠ½Π³ΡŠΡ‚ Π²Π΅Ρ‡Π΅ Π½Π΅ виси Π½Π° Π½Π΅Π³ΠΎ. Ролята Π½Π° WebRTC NAT Traversal Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°ΠΆΠ½Π° Ρ‚ΡƒΠΊ, Π·Π° Π΄Π° улСсни ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° peer-to-peer Π²Ρ€ΡŠΠ·ΠΊΠ° Π½Π° рСсурси Π·Π° стрийминг Π½Π° Ρ‚Ρ€Π΅Ρ‚ΠΈ страни, ΠΊΠΎΠ΅Ρ‚ΠΎ улСснява ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΡΡŠΠ·Π΄Π°Ρ‚Π΅Π»Ρ към ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°.

    Π’ΠΈΠ΄Π΅ΠΎ компрСсия

    ΠšΠΎΠΌΠΏΡ€Π΅ΡΠΈΡΡ‚Π° Π½Π° Π²ΠΈΠ΄Π΅ΠΎ Π΅ Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΠ° част ΠΎΡ‚ Ρ‚Ρ€ΡŠΠ±ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° ΠΈ допринася Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π·Π° плавността Π½Π° ΠΏΠΎΡ‚ΠΎΠΊΠ°. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° Π·Π½Π°Π΅Ρ‚Π΅ всички подробности Π·Π° ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π²ΠΈΠ΄Π΅ΠΎ VP8/H264, Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° концСпцията ΠΏΠΎΠΌΠ°Π³Π° Π΄Π° сС Ρ€Π°Π·Π±Π΅Ρ€Π°Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ Π½Π° скоростта Π½Π° ΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎ Π²ΠΈΠ΄Π΅ΠΎ, Π΄Π° сС отстранят Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΏΡ€ΠΈ Π½Π΅ΠΎΡ‡Π°ΠΊΠ²Π°Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈ Π΄Π° сС ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π° латСнтността.

    ΠšΠΎΠΌΠΏΡ€Π΅ΡΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π²ΠΈΠ΄Π΅ΠΎ Π·Π° стрийминг услуга Π΅ прСдизвикатСлство, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΡŠΡ‚ трябва Π΄Π° Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°, Ρ‡Π΅ ΠΎΠ±Ρ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ + Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° ΠΌΡ€Π΅ΠΆΠΎΠ² трансфСр + Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ Π΅ възмоТно Π½Π°ΠΉ-ΠΌΠ°Π»ΠΊΠΎ. ОсвСн Ρ‚ΠΎΠ²Π° ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ Π½Π° ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ трябва Π΄Π° бъдС послСдоватСлСн ΠΈ Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚. Някои компромиси ΠΏΡ€ΠΈ ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π΅ сС ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ - Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Π΅Ρ‚Π΅ΠΌ дълго Π²Ρ€Π΅ΠΌΠ΅ Π·Π° ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ ΠΏΡ€Π΅Π΄ ΠΏΠΎ-малък Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π° Ρ„Π°ΠΉΠ»Π° ΠΈ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ ΠΈΠ»ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ нСпослСдоватСлна компрСсия.

    Π˜Π΄Π΅ΡΡ‚Π° Π·Π°Π΄ Π²ΠΈΠ΄Π΅ΠΎ компрСсията Π΅ Π΄Π° сС Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡ€Π°Ρ‚ Π½Π΅Π½ΡƒΠΆΠ½ΠΈΡ‚Π΅ Π±ΠΈΡ‚ΠΎΠ²Π΅ информация, ΠΊΠ°Ρ‚ΠΎ ΡΡŠΡ‰Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΏΡ€ΠΈΠ΅ΠΌΠ»ΠΈΠ²ΠΎ Π½ΠΈΠ²ΠΎ Π½Π° вярност Π·Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅. Π’ допълнСниС към ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ ΠΊΠ°Π΄Ρ€ΠΈ ΠΎΡ‚ статично ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΡŠΡ‚ ΠΈΠ·Π²Π΅ΠΆΠ΄Π° тСкущия ΠΊΠ°Π΄ΡŠΡ€ ΠΎΡ‚ ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈΡ ΠΈ слСдващия, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° само тяхната Ρ€Π°Π·Π»ΠΈΠΊΠ°. ΠšΠ°ΠΊΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° с Pacman, сС ΠΏΡ€Π΅Π΄Π°Π²Π°Ρ‚ само Π΄ΠΈΡ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ.

    ΠžΠ±Π»Π°Ρ‡Π½ΠΈ ΠΈΠ³Ρ€ΠΈ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Π½Π° WebRTC: p2p, ΠΌΡƒΠ»Ρ‚ΠΈΠΏΠ»Π΅ΠΉΡŠΡ€, Π½ΡƒΠ»Π΅Π²ΠΎ забавянС
    Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Π½Π° Π²ΠΈΠ΄Π΅ΠΎ ΠΊΠ°Π΄Ρ€ΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Pacman ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€

    Аудио компрСсия

    По ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π°Ρ‡ΠΈΠ½ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΡŠΡ‚ Π·Π° Π°ΡƒΠ΄ΠΈΠΎ компрСсия пропуска Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π²ΡŠΠ·ΠΏΡ€ΠΈΠ΅Ρ‚ΠΈ ΠΎΡ‚ Ρ…ΠΎΡ€Π°Ρ‚Π°. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Opus Π΅ Π½Π°ΠΉ-добрият Π°ΡƒΠ΄ΠΈΠΎ ΠΊΠΎΠ΄Π΅ΠΊ. Π’ΠΎΠΉ Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½ Π΄Π° ΠΏΡ€Π΅Π΄Π°Π²Π° Π°ΡƒΠ΄ΠΈΠΎ вълна ΠΏΡ€Π΅Π· ΠΏΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Π·Π° Π΄Π΅ΠΉΡ‚Π°Π³Ρ€Π°ΠΌΠ° ΠΊΠ°Ρ‚ΠΎ RTP (ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Π·Π° транспорт Π² Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅). ЗабавянСто ΠΌΡƒ Π΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ‚ Ρ‚ΠΎΠ²Π° Π½Π° mp3 ΠΈ aac, Π° качСството Π΅ ΠΏΠΎ-високо. ЗабавянСто ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π΅ ΠΎΠΊΠΎΠ»ΠΎ 5~66,5ms.

    Pion, WebRTC Π² Golang

    Пион Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡ‚ΠΎ прСнася WebRTC Π² Golang. ВмСсто ΠΎΠ±ΠΈΡ‡Π°ΠΉΠ½ΠΎΡ‚ΠΎ ΠΎΠ±Π²ΠΈΠ²Π°Π½Π΅ Π½Π° Π½Π°Ρ‚ΠΈΠ²Π½ΠΈ C++ WebRTC Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Pion Π΅ Π½Π°Ρ‚ΠΈΠ²Π½Π° рСализация Π½Π° Golang WebRTC с ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π° производитСлност, Go интСграция ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° вСрсиитС Π½Π° WebRTC ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈ.

    Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° прСдоставя ΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎ ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ с ΠΌΠ½ΠΎΠ³ΠΎ страхотни Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ със закъснСниС ΠΎΡ‚ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ‚ сСкунда. Има собствСна рСализация Π½Π° STUN, DTLS, SCTP ΠΈ Π΄Ρ€. ΠΈ някои СкспСримСнти с QUIC ΠΈ WebAssembly. Π‘Π°ΠΌΠ° ΠΏΠΎ сСбС си Ρ‚Π°Π·ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Π΅ наистина Π΄ΠΎΠ±ΡŠΡ€ ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ Π½Π° ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ със страхотна докумСнтация, Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈ ΠΈ страхотни ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ.

    ΠžΠ±Ρ‰Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° Pion, Π²ΠΎΠ΄Π΅Π½Π° ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ страстСн ΡΡŠΠ·Π΄Π°Ρ‚Π΅Π», Π΅ доста ΠΎΠΆΠΈΠ²Π΅Π½Π° ΠΈ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ качСствСни дискусии Π·Π° WebRTC. Ако сС интСрСсуватС ΠΎΡ‚ Ρ‚Π°Π·ΠΈ тСхнология, ΠΏΡ€ΠΈΡΡŠΠ΅Π΄ΠΈΠ½Π΅Ρ‚Π΅ сС http://pion.ly/slack - Ρ‰Π΅ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΈ Π½Π΅Ρ‰Π°.

    ПисанС на CloudRetro в Golang

    ΠžΠ±Π»Π°Ρ‡Π½ΠΈ ΠΈΠ³Ρ€ΠΈ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Π½Π° WebRTC: p2p, ΠΌΡƒΠ»Ρ‚ΠΈΠΏΠ»Π΅ΠΉΡŠΡ€, Π½ΡƒΠ»Π΅Π²ΠΎ забавянС
    Π Π°Π±ΠΎΡ‚Π½ΠΎ внСдряванС Π² Go

    Go channels Π² дСйствиС

    Π‘ красивия Π΄ΠΈΠ·Π°ΠΉΠ½ Π½Π° ΠΊΠ°Π½Π°Π»ΠΈΡ‚Π΅ Π½Π° Go, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ с ΠΏΠΎΡ‚ΠΎΠΊΠ° Π½Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΡ ΠΈ СдноврСмСнността са Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ опростСни. ΠšΠ°ΠΊΡ‚ΠΎ Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠ°Ρ‚Π°, ΠΈΠΌΠ° няколко ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈ ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ GoRoutine. ВсСки ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ управлява собствСното си ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ ΠΈ ΠΊΠΎΠΌΡƒΠ½ΠΈΠΊΠΈΡ€Π° Ρ‡Ρ€Π΅Π· ΠΊΠ°Π½Π°Π»ΠΈ. Π˜Π·Π±ΠΈΡ€Π°Ρ‚Π΅Π»Π½ΠΎΡ‚ΠΎ Ρ‚Π²ΡŠΡ€Π΄Π΅Π½ΠΈΠ΅ Π½Π° Golang ΠΊΠ°Ρ€Π° Π΅Π΄Π½ΠΎ Π°Ρ‚ΠΎΠΌΠ½ΠΎ ΡΡŠΠ±ΠΈΡ‚ΠΈΠ΅ Π΄Π° сС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° всСки ΠΏΡŠΡ‚ Π² ΠΈΠ³Ρ€Π°Ρ‚Π° (ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠ° Π½Π° ΠΈΠ³Ρ€Π°Ρ‚Π°). Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±Π»ΠΎΠΊΠΈΡ€Π°Π½Π΅ Π·Π° Ρ‚ΠΎΠ·ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½. НапримСр, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π΄Π°Π΄Π΅Π½ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» Π΅ Π·Π°ΠΏΠ°Π·Π΅Π½, Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° пълна ΠΌΠΎΠΌΠ΅Π½Ρ‚Π½Π° снимка Π½Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΈΠ³Ρ€Π°Ρ‚Π°. Π’ΠΎΠ²Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ трябва Π΄Π° останС Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚ΠΎ, ΠΊΠ°Ρ‚ΠΎ Π²Π»ΠΈΠ·Π°Ρ‚Π΅, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π·Π°ΠΏΠΈΡΡŠΡ‚ ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡ΠΈ. По Π²Ρ€Π΅ΠΌΠ΅ Π½Π° всСки Ρ‚ΠΈΠΊ Π½Π° ΠΈΠ³Ρ€Π°, Π±Π΅ΠΊΠ΅Π½Π΄ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° само опСрация Π·Π° Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ ΠΈΠ»ΠΈ Π²Π»ΠΈΠ·Π°Π½Π΅, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈ процСса бСзопасСн Π·Π° Π½ΠΈΡˆΠΊΠ°Ρ‚Π°.

    func (e *gameEmulator) gameUpdate() {
    for {
    	select {
    		case <-e.saveOperation:
    			e.saveGameState()
    		case key := <-e.input:
    			e.updateGameState(key)
    		case <-e.done:
    			e.close()
    			return
    	}
        }
    }

    Π²Π΅Π½Ρ‚ΠΈΠ»Π°Ρ‚ΠΎΡ€ Π½Π°Π²ΡŠΡ‚Ρ€Π΅ / Π²Π΅Π½Ρ‚ΠΈΠ»Π°Ρ‚ΠΎΡ€ навън

    Π’ΠΎΠ·ΠΈ шаблон Π½Π° Golang Π΅ чудСсСн Π·Π° моя случай Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° CrowdPlay ΠΈ Multiple Player. Π‘Π»Π΅Π΄Π²Π°ΠΉΠΊΠΈ Ρ‚ΠΎΠ·ΠΈ ΠΌΠΎΠ΄Π΅Π», всички потрСбитСлски Π²Ρ…ΠΎΠ΄ΠΎΠ²Π΅ Π² Π΅Π΄Π½Π° ΠΈ ΡΡŠΡ‰Π° стая са Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ Π² цСнтралния Π²Ρ…ΠΎΠ΄Π΅Π½ ΠΊΠ°Π½Π°Π». Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° мСдията Π½Π° ΠΈΠ³Ρ€Π°Ρ‚Π° сС Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π° Π·Π° всички ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ Π² Π΅Π΄Π½Π° ΠΈ ΡΡŠΡ‰Π° стая. По Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ постигамС раздСлянС Π½Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΈΠ³Ρ€Π°Ρ‚Π° ΠΌΠ΅ΠΆΠ΄Ρƒ няколко ΠΈΠ³Ρ€ΠΎΠ²ΠΈ сСсии Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ.

    ΠžΠ±Π»Π°Ρ‡Π½ΠΈ ΠΈΠ³Ρ€ΠΈ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Π½Π° WebRTC: p2p, ΠΌΡƒΠ»Ρ‚ΠΈΠΏΠ»Π΅ΠΉΡŠΡ€, Π½ΡƒΠ»Π΅Π²ΠΎ забавянС
    Бинхронизация ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ сСсии

    ΠΠ΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈ Π½Π° Golang

    Π“ΠΎΠ»Π°Π½Π³ Π½Π΅ Π΅ ΡΡŠΠ²ΡŠΡ€ΡˆΠ΅Π½. ΠšΠ°Π½Π°Π»ΡŠΡ‚ Π΅ Π±Π°Π²Π΅Π½. Π’ сравнСниС с Π±Π»ΠΎΠΊΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ, Go ΠΊΠ°Π½Π°Π»ΡŠΡ‚ Π΅ просто ΠΏΠΎ-лСсСн Π½Π°Ρ‡ΠΈΠ½ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ ΠΈ ΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΈ ΡΡŠΠ±ΠΈΡ‚ΠΈΡ, Π½ΠΎ ΠΊΠ°Π½Π°Π»ΡŠΡ‚ Π½Π΅ осигурява Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€Π°Ρ‚Π° производитСлност. Под ΠΊΠ°Π½Π°Π»Π° ΠΈΠΌΠ° слоТна Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‰Π° Π»ΠΎΠ³ΠΈΠΊΠ°. ΠŸΠΎΡ€Π°Π΄ΠΈ Ρ‚ΠΎΠ²Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ… някои ΠΊΠΎΡ€Π΅ΠΊΡ†ΠΈΠΈ Π½Π° внСдряванСто Ρ‡Ρ€Π΅Π· ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΠΊΠ»ΡŽΡ‡Π°Π»ΠΊΠΈ ΠΈ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΈ стойности ΠΏΡ€ΠΈ смяна Π½Π° ΠΊΠ°Π½Π°Π»ΠΈ, Π·Π° Π΄Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°ΠΌ производитСлността.

    Π’ допълнСниС, ΡΡŠΠ±ΠΈΡ€Π°Ρ‡ΡŠΡ‚ Π½Π° Π±ΠΎΠΊΠ»ΡƒΠΊ Π½Π° Golang Π΅ нСуправляСм, ΠΊΠΎΠ΅Ρ‚ΠΎ понякога причинява ΠΏΠΎΠ΄ΠΎΠ·Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ дълги ΠΏΠ°ΡƒΠ·ΠΈ. Π’ΠΎΠ²Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΡ€Π΅Ρ‡ΠΈ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π·Π° стрийминг Π² Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅.

    COG

    ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰Π°Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Golang с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ VP8/H264 Π·Π° компрСсиранС Π½Π° ΠΌΠ΅Π΄ΠΈΠΈ ΠΈ Libretro Π·Π° Π΅ΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈ Π½Π° ΠΈΠ³Ρ€ΠΈ. Всички Ρ‚Π΅Π·ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ са само ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈ Π·Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° C Π² Go COG. Някои ΠΎΡ‚ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈΡ‚Π΅ са ΠΈΠ·Π±Ρ€ΠΎΠ΅Π½ΠΈ Π² Ρ‚Π°Π·ΠΈ публикация Π”Π΅ΠΉΠ² Π§Π΅ΠΉΠ½ΠΈ. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, с ΠΊΠΎΠΈΡ‚ΠΎ сС ΡΠ±Π»ΡŠΡΠΊΠ°Ρ…:

    • Π½Π΅Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° улавянС Π½Π° срив Π² CGO, Π΄ΠΎΡ€ΠΈ с Golang RecoveryCrash;
    • Π½Π΅Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π΄Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°ΠΌΠ΅ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π½ΠΈΠ΅ Π² производитСлността, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ΅ΠΌ Π΄Π΅Ρ‚Π°ΠΉΠ»Π½ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π² CGO.

    Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

    ΠŸΠΎΡΡ‚ΠΈΠ³Π½Π°Ρ… Ρ†Π΅Π»Ρ‚Π° си Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π° услугитС Π·Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΈ ΠΈΠ³Ρ€ΠΈ ΠΈ Π΄Π° създам ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°, която ΠΌΠΈ ΠΏΠΎΠΌΠ°Π³Π° Π΄Π° играя носталгични Ρ€Π΅Ρ‚Ρ€ΠΎ ΠΈΠ³Ρ€ΠΈ с ΠΌΠΎΠΈΡ‚Π΅ приятСли ΠΎΠ½Π»Π°ΠΉΠ½. Π’ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π΅ Π±ΠΈ Π±ΠΈΠ» възмоТСн Π±Π΅Π· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° Π½Π° Pion ΠΈ ΠΏΠΎΠ΄ΠΊΡ€Π΅ΠΏΠ°Ρ‚Π° Π½Π° общността Π½Π° Pion. Π˜Π·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ съм Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ Π·Π° ΠΈΠ½Ρ‚Π΅Π½Π·ΠΈΠ²Π½ΠΎΡ‚ΠΎ ΠΌΡƒ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅. ΠŸΡ€ΠΎΡΡ‚ΠΈΡ‚Π΅ API, прСдоставСни ΠΎΡ‚ WebRTC ΠΈ Pion, Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°Ρ‚ Π±Π΅Π·ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Π° интСграция. ΠŸΡŠΡ€Π²ΠΎΡ‚ΠΎ ΠΌΠΈ доказатСлство Π·Π° концСпцията бСшС пуснато ΡΡŠΡ‰Π°Ρ‚Π° сСдмица, Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ Π½Π΅ бях наясно с ΠΊΠΎΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈΡ‚Π΅ peer-to-peer (P2P) ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ.

    Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ лСсната интСграция, P2P ΡΡ‚Ρ€ΠΈΠΉΠΌΠΈΠ½Π³ΡŠΡ‚ наистина Π΅ ΠΌΠ½ΠΎΠ³ΠΎ слоТна област Π² ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π½ΠΈΡ‚Π΅ Π½Π°ΡƒΠΊΠΈ. Π’ΠΎΠΉ трябва Π΄Π° сС справи със слоТността Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠ³ΠΎΠ΄ΠΈΡˆΠ½ΠΈΡ‚Π΅ ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΈ ΠΊΠ°Ρ‚ΠΎ IP ΠΈ NAT, Π·Π° Π΄Π° създадС peer-to-peer сСсия. Π”ΠΎΠΊΠ°Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈΡ… ΠΏΠΎ Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π½Π°Ρ‚Ρ€ΡƒΠΏΠ°Ρ… ΠΌΠ½ΠΎΠ³ΠΎ Ρ†Π΅Π½Π½ΠΈ знания Π·Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π² ΠΌΡ€Π΅ΠΆΠ° ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° производитСлността, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π°ΠΌ Π½Π° всСки Π΄Π° ΠΎΠΏΠΈΡ‚Π° Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈ P2P ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° WebRTC.

    CloudRetro сС Π³Ρ€ΠΈΠΆΠΈ Π·Π° всички случаи Π½Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°, ΠΊΠΎΠΈΡ‚ΠΎ ΠΎΡ‡Π°ΠΊΠ²Π°Ρ… ΠΎΡ‚ моята Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° Ρ€Π΅Ρ‚Ρ€ΠΎ Π³Π΅ΠΉΠΌΡŠΡ€. Мисля ΠΎΠ±Π°Ρ‡Π΅, Ρ‡Π΅ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ области Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π° Π΄Π° подобря, ΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄Π° направя ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° ΠΏΠΎ-Π½Π°Π΄Π΅ΠΆΠ΄Π½Π° ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π½Π°, Π΄Π° прСдоставя ΠΏΠΎ-високо качСство Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ°Ρ‚Π° Π½Π° ΠΈΠ³Ρ€Π°Ρ‚Π° ΠΈΠ»ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° сподСлянС Π½Π° ΠΈΠ³Ρ€ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅. Работя усилСно Π²ΡŠΡ€Ρ…Ρƒ Ρ‚ΠΎΠ²Π°. Моля послСдвайтС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ Π³ΠΎ ΠΏΠΎΠ΄ΠΊΡ€Π΅ΠΏΠ΅Ρ‚Π΅, Π°ΠΊΠΎ Π³ΠΎ харСсватС.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€