Π‘ΠΎΡΡΠ²Π΅Ρ ΠΊΠ°ΠΊΠΎ ΡΡΠ»ΡΠ³Π°, ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΠΊΠΎ ΡΡΠ»ΡΠ³Π°, ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΊΠ°ΠΊΠΎ ΡΡΠ»ΡΠ³Π°, ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡΠΊΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΊΠ°ΠΊΠΎ ΡΡΠ»ΡΠ³Π°, Π²ΠΈΠ΄Π΅ΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ ΠΊΠ°ΠΊΠΎ ΡΡΠ»ΡΠ³Π°, ΡΡΠΎ Π΅ ΡΠΎ ΠΎΠ±Π»Π°ΠΊ ΠΈΠ³ΡΠΈΡΠ΅ ΠΊΠ°ΠΊΠΎ ΡΡΠ»ΡΠ³Π°? ΠΠ΅ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΠΎΠ±ΠΈΠ΄ΠΈ Π·Π° ΡΠΎΠ·Π΄Π°Π²Π°ΡΠ΅ ΠΎΠ±Π»Π°ΠΊ ΠΈΠ³ΡΠΈ (Cloud Gaming), ΠΊΠ°ΠΊΠΎ ΡΡΠΎ Π΅ Stadia, Π½Π΅ΠΎΠ΄Π°ΠΌΠ½Π° Π»Π°Π½ΡΠΈΡΠ°Π½Π° ΠΎΠ΄ Google. Π‘ΡΠ°Π΄ΠΈΠ°
Π’Π°Π½ ΠΠ³ΡΠ΅Π½ ΡΠ΅ΡΠΈ Π΄Π° ΡΠ° ΡΠ΅ΡΡΠΈΡΠ° ΠΎΠ²Π°Π° ΠΌΠΎΠΆΠ½ΠΎΡΡ Π½Π° Π½Π΅Π³ΠΎΠ²ΠΈΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ CloudRetro. CloudRetro Π΅ Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° Pion,
ΠΠ»Π΅Π³ΡΠ²Π°ΡΠ΅
ΠΠΈΠ½Π°ΡΠ°ΡΠ° Π³ΠΎΠ΄ΠΈΠ½Π°, ΠΊΠΎΠ³Π° Google ΡΠ° ΠΎΠ±ΡΠ°Π²ΠΈ Stadia, ΠΌΠΈ Π³ΠΎ ΡΠ°Π·Π½Π΅ΡΠ΅ ΠΏΠ°ΠΌΠ΅ΡΠΎΡ. ΠΠ΄Π΅ΡΠ°ΡΠ° Π΅ ΡΠΎΠ»ΠΊΡ ΡΠ½ΠΈΠΊΠ°ΡΠ½Π° ΠΈ ΠΈΠ½ΠΎΠ²Π°ΡΠΈΠ²Π½Π° ΡΡΠΎ ΠΏΠΎΡΡΠΎΡΠ°Π½ΠΎ ΡΠ΅ ΠΏΡΠ°ΡΡΠ²Π°Π² ΠΊΠ°ΠΊΠΎ ΡΠΎΠ° Π²ΠΎΠΎΠΏΡΡΠΎ Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎ ΠΏΠΎΡΡΠΎΠ΅ΡΠΊΠ°ΡΠ° ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ°. ΠΠ΅Π»Π±Π°ΡΠ° ΠΏΠΎΠ΄ΠΎΠ±ΡΠΎ Π΄Π° ΡΠ° ΡΠ°Π·Π±Π΅ΡΠ°ΠΌ ΠΎΠ²Π°Π° ΡΠ΅ΠΌΠ° ΠΌΠ΅ ΠΏΠΎΡΡΠΈΠΊΠ½Π° Π΄Π° ΡΠΎΠ·Π΄Π°Π΄Π°ΠΌ ΡΠ²ΠΎΡΠ° ΡΠΎΠΏΡΡΠ²Π΅Π½Π° Π²Π΅ΡΠ·ΠΈΡΠ° Π½Π° ΠΈΠ³ΡΠ° Π²ΠΎ ΠΎΠ±Π»Π°ΠΊ ΡΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄. Π Π΅Π·ΡΠ»ΡΠ°ΡΠΎΡ Π±Π΅ΡΠ΅ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ ΡΠ°Π½ΡΠ°ΡΡΠΈΡΠ΅Π½. ΠΠΎΠ΄ΠΎΠ»Ρ Π±ΠΈ ΡΠ°ΠΊΠ°Π» Π΄Π° Π³ΠΎ ΡΠΏΠΎΠ΄Π΅Π»Π°ΠΌ ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° ΠΌΠΎΡΠ°ΡΠ° Π³ΠΎΠ΄ΠΈΠ½Π°
TLDR: ΠΊΡΠ°ΡΠΊΠ° ΡΠ»Π°ΡΠ΄ Π²Π΅ΡΠ·ΠΈΡΠ° ΡΠΎ Π½Π°Π³Π»Π°ΡΡΠ²Π°ΡΠ°
ΠΠΎΡΡΠΎ ΠΎΠ±Π»Π°ΠΊ ΠΈΠ³ΡΠΈΡΠ΅ ΡΠ΅ ΠΈΠ΄Π½ΠΈΠ½Π°ΡΠ°
ΠΠ΅ΡΡΠ²Π°ΠΌ Π΄Π΅ΠΊΠ° Cloud Gaming Π½Π°ΡΠΊΠΎΡΠΎ ΡΠ΅ ΡΡΠ°Π½Π΅ ΡΠ»Π΅Π΄Π½Π°ΡΠ° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡΠ° Π½Π° Π½Π΅ ΡΠ°ΠΌΠΎ ΠΈΠ³ΡΠΈ, ΡΡΠΊΡ ΠΈ Π΄ΡΡΠ³ΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΠ΄ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡΠΊΠ°ΡΠ° Π½Π°ΡΠΊΠ°. ΠΠ³ΡΠ°ΡΠ΅ΡΠΎ Π²ΠΎ ΠΎΠ±Π»Π°ΠΊ Π΅ Π²ΡΠ² Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½Ρ/ΡΠ΅ΡΠ²Π΅Ρ. ΠΠ²ΠΎΡ ΠΌΠΎΠ΄Π΅Π» Π³ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡΠ° ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ΡΠΎ ΡΠΎ Π·Π°Π΄Π½ΠΈΠΎΡ Π΄Π΅Π» ΠΈ ΡΠ° ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠ° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΏΡΠ΅Π΄Π½ΠΈΠΎΡ Π΄Π΅Π» ΡΠΎ Ρ ΠΎΡΡΠΈΡΠ°ΡΠ΅ Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π½Π° ΠΈΠ³ΡΠ°ΡΠ° Π½Π° ΠΎΠ΄Π΄Π°Π»Π΅ΡΠ΅Π½ ΡΠ΅ΡΠ²Π΅Ρ ΠΈ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°ΡΠ΅ ΡΠ»ΠΈΠΊΠΈ/Π°ΡΠ΄ΠΈΠΎ Π΄ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΡ. Π‘Π΅ΡΠ²Π΅ΡΠΎΡ Π²ΡΡΠΈ ΡΠ΅ΡΠΊΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°, ΡΠ°ΠΊΠ° ΡΡΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΡ ΠΏΠΎΠ²Π΅ΡΠ΅ Π½Π΅ Π΅ Π½Π° ΠΌΠΈΠ»ΠΎΡΡ ΠΈ Π½Π΅ΠΌΠΈΠ»ΠΎΡΡ Π½Π° Ρ Π°ΡΠ΄Π²Π΅ΡΡΠΊΠΈΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ°.
Google Stadia Π²ΠΎ ΡΡΡΡΠΈΠ½Π° Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° ΠΈΠ³ΡΠ°ΡΠ΅
ΠΠ΄Π½ΠΈΠ½Π°ΡΠ° Π½Π° ΠΎΠ²Π°Π° ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ°: ΠΠ°ΠΌΠΈΡΠ»Π΅ΡΠ΅ Π°ΠΊΠΎ Microsoft Windows 10 ΡΠ°Π±ΠΎΡΠΈ Π½Π° ΠΏΡΠ΅Π»ΠΈΡΡΡΠ²Π°ΡΠΎΡ Chrome?
ΠΠ³ΡΠ°ΡΠ΅ΡΠΎ Π²ΠΎ ΠΎΠ±Π»Π°ΠΊ Π΅ ΡΠ΅Ρ Π½ΠΈΡΠΊΠΈ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊ
ΠΠ³ΡΠΈΡΠ΅ ΡΠ΅ Π΅Π΄Π½Π° ΠΎΠ΄ ΠΎΠ½ΠΈΠ΅ ΡΠ΅ΡΠΊΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΊΠ°Π΄Π΅ ΡΡΠΎ Π΅ ΠΏΠΎΡΡΠ΅Π±Π΅Π½ ΠΏΠΎΡΡΠΎΡΠ°Π½, Π±ΡΠ· ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ. ΠΠΊΠΎ ΠΏΠΎΠ²ΡΠ΅ΠΌΠ΅Π½ΠΎ Π½Π°ΠΈΠ΄Π΅ΠΌΠ΅ Π½Π° Π΄ΠΎΡΠ½Π΅ΡΠ΅ ΠΎΠ΄ 2 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ ΠΏΡΠΈ ΠΊΠ»ΠΈΠΊΠ½ΡΠ²Π°ΡΠ΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°, ΡΠΎΠ° Π΅ ΠΏΡΠΈΡΠ°ΡΠ»ΠΈΠ²ΠΎ. ΠΠΈΠ΄Π΅ΠΎ ΠΏΡΠ΅Π½ΠΎΡΠΈΡΠ΅ Π²ΠΎ ΠΆΠΈΠ²ΠΎ ΠΈΠΌΠ°Π°Ρ ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΡΠ° Π΄Π° Π·Π°ΠΎΡΡΠ°Π½ΡΠ²Π°Π°Ρ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΡΠ΅ΠΊΡΠ½Π΄ΠΈ, Π½ΠΎ ΡΠ΅ΠΏΠ°ΠΊ Π½ΡΠ΄Π°Ρ ΡΠ°Π·ΡΠΌΠ½Π° ΡΠΏΠΎΡΡΠ΅Π±Π»ΠΈΠ²ΠΎΡΡ. ΠΠ΅ΡΡΡΠΎΠ°, Π°ΠΊΠΎ ΠΈΠ³ΡΠ°ΡΠ° ΡΠ΅ΡΡΠΎ Π·Π°ΠΎΡΡΠ°Π½ΡΠ²Π° Π·Π° 500 ms, ΡΠ°Π° Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ³ΡΠ°. ΠΠ°ΡΠ°ΡΠ° ΡΠ΅Π» Π΅ Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π΅ΠΌΠ΅ Π΅ΠΊΡΡΡΠ΅ΠΌΠ½ΠΎ Π½ΠΈΡΠΊΠ° Π»Π°ΡΠ΅Π½ΡΠ½ΠΎΡΡ, ΡΠ°ΠΊΠ° ΡΡΠΎ ΡΠ°Π·ΠΎΡ ΠΏΠΎΠΌΠ΅ΡΡ Π²Π»Π΅Π·ΠΎΡ ΠΈ ΠΌΠ΅Π΄ΠΈΡΠΌΠΎΡ Π΅ ΡΡΠΎ Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ°Π». ΠΠ°ΡΠΎΠ°, ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π°Π»Π½ΠΈΠΎΡ ΠΏΡΠΈΡΡΠ°ΠΏ Π·Π° Π²ΠΈΠ΄Π΅ΠΎ ΡΡΡΠΈΠΌΠΈΠ½Π³ Π½Π΅ Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π»ΠΈΠ² ΠΎΠ²Π΄Π΅.
Π¨Π°Π±Π»ΠΎΠ½ Π·Π° ΠΈΠ³ΡΠΈ Π·Π° Π³Π΅Π½Π΅ΡΠ°Π»Π΅Π½ ΠΎΠ±Π»Π°ΠΊ
ΠΡΠΎΠ΅ΠΊΡ ΡΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ CloudRetro
Π Π΅ΡΠΈΠ² Π΄Π° ΡΠΎΠ·Π΄Π°Π΄Π°ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΊ Π·Π° ΡΠ΅ΡΡΠΈΡΠ°ΡΠ΅ Π½Π° ΠΈΠ³ΡΠ° Π²ΠΎ ΠΎΠ±Π»Π°ΠΊ Π·Π° Π΄Π° Π²ΠΈΠ΄Π°ΠΌ Π΄Π°Π»ΠΈ ΡΠ΅ΡΠΎ ΠΎΠ²Π° Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎ ΡΠΎΠ»ΠΊΡ ΡΡΡΠΎΠ³ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ° Π½Π° ΠΌΡΠ΅ΠΆΠ°ΡΠ°. ΠΠΎ ΠΈΠ·Π±ΡΠ°Π² Golang Π·Π° Π΄ΠΎΠΊΠ°ΠΆΡΠ²Π°ΡΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΎΡ Π±ΠΈΠ΄Π΅ΡΡΠΈ ΡΠΎΠ° Π±Π΅ΡΠ΅ ΡΠ°Π·ΠΈΠΊΠΎΡ ΡΠΎ ΠΊΠΎΡ Π½Π°ΡΠΌΠ½ΠΎΠ³Ρ Π±Π΅Π² Π·Π°ΠΏΠΎΠ·Π½Π°Π΅Π½ ΠΈ Π±Π΅ΡΠ΅ Π΄ΠΎΠ±ΡΠΎ ΠΏΡΠΈΠ»Π°Π³ΠΎΠ΄Π΅Π½ Π·Π° ΠΎΠ²Π°Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° ΠΎΠ΄ ΠΌΠ½ΠΎΠ³Ρ Π΄ΡΡΠ³ΠΈ ΠΏΡΠΈΡΠΈΠ½ΠΈ, ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΠΏΠΎΠ΄ΠΎΡΠ½Π° ΠΎΡΠΊΡΠΈΠ². Go Π΅ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π΅Π½ ΠΈ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° ΠΌΠ½ΠΎΠ³Ρ Π±ΡΠ·ΠΎ; ΠΠ°Π½Π°Π»ΠΈΡΠ΅ Π²ΠΎ Go ΡΠ΅ ΠΎΠ΄Π»ΠΈΡΠ½ΠΈ Π·Π° ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΡΠΊΠΈ.
ΠΡΠΎΠ΅ΠΊΡ
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄ΠΎΠ·Π½Π°Π΅ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ ΠΎΠ²Π΄Π΅:
CloudRetro ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ
CloudRetro ΠΊΠΎΡΠΈΡΡΠΈ ΡΠ΅ΡΡΠΎ ΠΈΠ³ΡΠΈ Π·Π° Π΄Π° ΡΠ° ΠΏΠΎΠΊΠ°ΠΆΠ΅ ΠΌΠΎΡΡΠ° Π½Π° ΠΈΠ³ΡΠΈΡΠ΅ Π²ΠΎ ΠΎΠ±Π»Π°ΠΊ. Π¨ΡΠΎ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° Π΄ΠΎΠ±ΠΈΠ΅ΡΠ΅ ΠΌΠ½ΠΎΠ³Ρ ΡΠ½ΠΈΠΊΠ°ΡΠ½ΠΈ ΠΈΡΠΊΡΡΡΠ²Π° ΡΠΎ ΠΈΠ³ΡΠΈ.
- ΠΡΠ΅Π½ΠΎΡΠ»ΠΈΠ²ΠΎΡΡ Π½Π° ΠΈΠ³ΡΠ°ΡΠ°
- ΠΠ½ΡΡΠ°Π½Ρ ΡΠ΅ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡΠ° ΠΏΡΠΈ ΠΎΡΠ²ΠΎΡΠ°ΡΠ΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°; Π½Π΅ Π΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ ΠΏΡΠ΅Π·Π΅ΠΌΠ°ΡΠ΅ ΠΈΠ»ΠΈ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡΠ°
- Π Π°Π±ΠΎΡΠΈ Π²ΠΎ ΠΌΠΎΠ±ΠΈΠ»Π΅Π½ ΠΏΡΠ΅Π»ΠΈΡΡΡΠ²Π°Ρ, ΡΠ°ΠΊΠ° ΡΡΠΎ Π½Π΅ Π΅ ΠΏΠΎΡΡΠ΅Π±Π΅Π½ ΡΠΎΡΡΠ²Π΅Ρ Π·Π° Π΄Π° ΡΠ΅ ΡΡΠ°ΡΡΡΠ²Π°
- Π‘Π΅ΡΠΈΠΈΡΠ΅ Π·Π° ΠΈΠ³ΡΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠΏΠΎΠ΄Π΅Π»Π°Ρ Π½Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΡΠ΅Π΄ΠΈ ΠΈ Π΄Π° ΡΠ΅ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°Π°Ρ Π²ΠΎ ΠΎΠ±Π»Π°ΠΊΠΎΡ Π·Π° ΡΠ»Π΅Π΄Π½ΠΈΠΎΡ ΠΏΠ°Ρ ΠΊΠΎΠ³Π° ΡΠ΅ ΡΠ΅ Π½Π°ΡΠ°Π²ΠΈΡΠ΅
- ΠΠ³ΡΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π΅ΠΌΠΈΡΡΠ²Π° ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ° ΠΈΠ³ΡΠ°Π°Ρ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈ ΠΎΠ΄Π΅Π΄Π½Π°Ρ:
- Crowdplay ΠΊΠ°ΠΊΠΎ TwitchPlayPokemon, ΡΠ°ΠΌΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΌΠ΅ΡΡ-ΠΏΠ»Π°ΡΡΠΎΡΠΌΡΠΊΠΈ ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ Π²ΠΎ ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅
- ΠΡΠ»Π°ΡΠ½ ΠΈΠ³ΡΠΈ ΠΎΠ½Π»Π°ΡΠ½. ΠΠ½ΠΎΠ³Ρ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈ ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΠΈΠ³ΡΠ°Π°Ρ Π±Π΅Π· Π΄Π° ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°Π°Ρ ΠΌΡΠ΅ΠΆΠ°. Samurai Shodown ΡΠ΅Π³Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΎ ΠΈΠ³ΡΠ°Π°Ρ 2 ΠΈΠ³ΡΠ°ΡΠΈ ΠΏΡΠ΅ΠΊΡ ΠΌΡΠ΅ΠΆΠ°ΡΠ° CloudRetro
ΠΠ΅ΠΌΠΎ Π²Π΅ΡΠ·ΠΈΡΠ° Π½Π° ΠΎΠ½Π»Π°ΡΠ½ ΠΈΠ³ΡΠ° ΡΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈΠ³ΡΠ°ΡΠΈ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΠ΅Π΄ΠΈΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°
ΠΠ°ΡΠ°ΡΠ° ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΡΠΊΠΈ ΠΎΡΠ°ΠΊ
ΠΠΎΠ΄ΠΎΠ»Ρ Π΅ Π»ΠΈΡΡΠ° Π½Π° Π±Π°ΡΠ°ΡΠ° ΡΡΠΎ Π³ΠΈ ΠΏΠΎΡΡΠ°Π²ΠΈΠ² ΠΏΡΠ΅Π΄ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π°ΠΌ ΡΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ.
1. ΠΠ΄Π΅Π½ ΠΈΠ³ΡΠ°Ρ
ΠΠ²Π° Π±Π°ΡΠ°ΡΠ΅ ΠΌΠΎΠΆΠ΅Π±ΠΈ Π½Π΅ ΠΈΠ·Π³Π»Π΅Π΄Π° ΠΏΡΠ΅ΠΌΠ½ΠΎΠ³Ρ Π²Π°ΠΆΠ½ΠΎ ΠΈΠ»ΠΈ ΠΎΡΠΈΠ³Π»Π΅Π΄Π½ΠΎ ΠΎΠ²Π΄Π΅, Π½ΠΎ ΡΠΎΠ° Π΅ Π΅Π΄Π΅Π½ ΠΎΠ΄ ΠΌΠΎΠΈΡΠ΅ ΠΊΠ»ΡΡΠ½ΠΈ ΠΌΠΎΠΌΠ΅Π½ΡΠΈ, ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° ΠΎΠ±Π»Π°ΠΊ ΠΈΠ³ΡΠΈΡΠ΅ Π΄Π° ΠΎΡΡΠ°Π½Π°Ρ ΡΡΠΎ ΠΏΠΎΠ΄Π°Π»Π΅ΠΊΡ ΠΎΠ΄ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π°Π»Π½ΠΈΡΠ΅ ΡΡΠ»ΡΠ³ΠΈ Π·Π° ΡΡΡΠΈΠΌΠΈΠ½Π³. ΠΠΊΠΎ ΡΠ΅ ΡΠΎΠΊΡΡΠΈΡΠ°ΠΌΠ΅ Π½Π° ΠΈΠ³ΡΠ° Π·Π° Π΅Π΄Π΅Π½ ΠΈΠ³ΡΠ°Ρ, ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° ΡΠ΅ ΠΎΡΠ»ΠΎΠ±ΠΎΠ΄ΠΈΠΌΠ΅ ΠΎΠ΄ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΡΠ΅ΡΠ²Π΅Ρ ΠΈΠ»ΠΈ CDN Π·Π°ΡΠΎΠ° ΡΡΠΎ Π½Π΅ ΠΌΠΎΡΠ°ΠΌΠ΅ Π΄Π° ΠΏΡΠ΅Π½Π΅ΡΡΠ²Π°ΠΌΠ΅ Π΄ΠΎ ΠΌΠ°ΡΠΈΡΠ΅. ΠΠ°ΠΌΠ΅ΡΡΠΎ ΠΏΡΠΈΠΊΠ°ΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΡΠ΅Π½ΠΎΡΠΈ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ Π·Π° ΠΌΠΈΡΠ°Π»Π½ΠΈΠΊ ΠΈΠ»ΠΈ ΠΏΡΠ΅Π½Π΅ΡΡΠ²Π°ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΈ Π½Π° ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ WebSocket ΡΠ΅ΡΠ²Π΅Ρ, ΠΏΡΠ΅Π½ΠΎΡΠΈΡΠ΅ Π½Π° ΡΡΠ»ΡΠ³ΠΈ ΡΠ΅ Π΄ΠΎΡΡΠ°Π²ΡΠ²Π°Π°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π΄ΠΎ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ ΠΏΡΠ΅ΠΊΡ peer-to-peer 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. ΠΡΠΎΡΡΠΎΡΠΈΠΈ Π·Π° ΠΌΡΠ»ΡΠΈΠΏΠ»Π΅Π΅Ρ, ΠΈΠ³ΡΠ° Π½Π° Π³ΡΠΆΠ²Π° ΠΈ Π½Π°Π΄Π²ΠΎΡΠ΅ΡΠ½ΠΎ ΠΏΠΎΠ²ΡΠ·ΡΠ²Π°ΡΠ΅ (Π΄Π»Π°Π±ΠΎΠΊΠ° Π²ΡΡΠΊΠ°) ΡΠΎ ΠΈΠ³ΡΠ°ΡΠ°
CloudRetro ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π° ΠΌΠ½ΠΎΠ³Ρ Π½ΠΎΠ²ΠΈ ΠΈΠ³ΡΠΈ, ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅ CrowdPlay ΠΈ Online Multiplayer Π·Π° ΡΠ΅ΡΡΠΎ ΠΈΠ³ΡΠΈ. ΠΠΊΠΎ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈ ΠΎΡΠ²ΠΎΡΠ°Ρ ΠΈΡΡΠ° Π΄Π»Π°Π±ΠΎΠΊΠ° Π²ΡΡΠΊΠ° Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΈ, ΡΠΈΠ΅ ΡΠ΅ ΡΠ° Π²ΠΈΠ΄Π°Ρ ΠΈΡΡΠ°ΡΠ° ΠΈΠ³ΡΠ° ΡΡΠΎ ΡΠ°Π±ΠΎΡΠΈ, ΠΏΠ° Π΄ΡΡΠΈ ΠΈ ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈ ΡΠ΅ ΠΏΡΠΈΠ΄ΡΡΠΆΠ°Ρ.ΠΠΎΠΊΡΠ°Ρ ΡΠΎΠ°, ΡΠΎΡΡΠΎΡΠ±ΠΈΡΠ΅ Π½Π° ΠΈΠ³ΡΠ°ΡΠ° ΡΠ΅ Π·Π°ΡΡΠ²ΡΠ²Π°Π°Ρ Π²ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΎΠ±Π»Π°ΠΊ. ΠΠ²Π° ΠΈΠΌ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅ Π΄Π° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ Π΄Π° ΠΈΠ³ΡΠ°Π°Ρ Π²ΠΎ ΡΠ΅ΠΊΠΎΠ΅ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΊΠΎΡ Π±ΠΈΠ»ΠΎ Π΄ΡΡΠ³ ΡΡΠ΅Π΄.
7. Π₯ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»Π½ΠΎ ΡΠΊΠ°Π»ΠΈΡΠ°ΡΠ΅
ΠΠ°ΠΊΠΎ ΠΈ ΡΠ΅ΠΊΠΎΡ SAAS Π²ΠΎ Π΄Π΅Π½Π΅ΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅, ΠΈΠ³ΡΠΈΡΠ΅ Π²ΠΎ ΠΎΠ±Π»Π°ΠΊ ΠΌΠΎΡΠ° Π΄Π° Π±ΠΈΠ΄Π°Ρ Π΄ΠΈΠ·Π°ΡΠ½ΠΈΡΠ°Π½ΠΈ Π΄Π° Π±ΠΈΠ΄Π°Ρ Ρ ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»Π½ΠΎ ΡΠΊΠ°Π»Π°Π±ΠΈΠ»Π½ΠΈ. ΠΠΈΠ·Π°ΡΠ½ΠΎΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡ-ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° Π΄ΠΎΠ΄Π°Π΄Π΅ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ½ΠΈΡΠΈ Π·Π° Π΄Π° ΠΎΠΏΡΠ»ΡΠΆΡΠ²Π°ΡΠ΅ ΠΏΠΎΠ³ΠΎΠ»Π΅ΠΌ ΡΠΎΠΎΠ±ΡΠ°ΡΠ°Ρ.8. ΠΠ΅ΠΌΠ° Π²ΡΡΠΊΠ° ΡΠΎ Π΅Π΄Π΅Π½ ΠΎΠ±Π»Π°ΠΊ
ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° CloudRetro Π΅ Ρ ΠΎΡΡΠΈΡΠ°Π½Π° Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π΄Π°Π²Π°ΡΠ΅Π»ΠΈ Π½Π° ΠΎΠ±Π»Π°ΠΊ (Digital Ocean, Alibaba, ΠΏΡΠΈΠ»Π°Π³ΠΎΠ΄Π΅Π½ ΠΏΡΠΎΠ²Π°ΡΠ΄Π΅Ρ) Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ΅Π³ΠΈΠΎΠ½ΠΈ. ΠΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π°ΠΌ ΡΠ°Π±ΠΎΡΠ° Π²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ Π½Π° Docker Π·Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° ΠΈ Π³ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΠΌ ΠΌΡΠ΅ΠΆΠ½ΠΈΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Π±Π°Ρ ΡΠΊΡΠΈΠΏΡΠ° Π·Π° Π΄Π° ΠΈΠ·Π±Π΅ΡΠ°ΠΌ Π΄Π° Π±ΠΈΠ΄Π°ΠΌ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ Π²ΠΎ Π΅Π΄Π΅Π½ ΠΏΡΠΎΠ²Π°ΡΠ΄Π΅Ρ Π½Π° ΠΎΠ±Π»Π°ΠΊ. Π‘ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΎΠ²Π° ΡΠΎ NAT Traversal Π²ΠΎ WebRTC, ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° ΠΈΠΌΠ°ΠΌΠ΅ ΡΠ»Π΅ΠΊΡΠΈΠ±ΠΈΠ»Π½ΠΎΡΡ Π΄Π° Π³ΠΎ ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ΠΈΠΌΠ΅ CloudRetro Π½Π° ΠΊΠΎΡΠ° Π±ΠΈΠ»ΠΎ ΠΎΠ±Π»Π°ΠΊ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, ΠΏΠ° Π΄ΡΡΠΈ ΠΈ Π½Π° ΠΌΠ°ΡΠΈΠ½ΠΈΡΠ΅ Π½Π° ΡΠ΅ΠΊΠΎΡ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊ.ΠΡΡ ΠΈΡΠ΅ΠΊΡΠΎΠ½ΡΠΊΠΈ Π΄ΠΈΠ·Π°ΡΠ½
Π Π°Π±ΠΎΡΠ½ΠΈΠΊ: (ΠΈΠ»ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΡ Π·Π° ΡΡΡΠΈΠΌΠΈΠ½Π³ ΡΠΏΠΎΠΌΠ΅Π½Π°Ρ ΠΏΠΎΠ³ΠΎΡΠ΅) Π³ΠΈ ΠΌΠ½ΠΎΠΆΠΈ ΠΈΠ³ΡΠΈΡΠ΅, ΡΠ° Π²ΠΎΠ΄ΠΈ Π»ΠΈΠ½ΠΈΡΠ°ΡΠ° Π·Π° ΠΊΠΎΠ΄ΠΈΡΠ°ΡΠ΅ ΠΈ Π³ΠΈ ΠΏΡΠ΅Π½Π΅ΡΡΠ²Π° ΡΠΈΡΡΠΈΡΠ°Π½ΠΈΡΠ΅ ΠΌΠ΅Π΄ΠΈΡΠΌΠΈ Π΄ΠΎ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅. Π Π°Π±ΠΎΡΠ½ΠΈΡΠΊΠΈΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠΎΡΠΈ ΡΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ°Π°Ρ Π½ΠΈΠ· ΡΠ΅Π»ΠΈΠΎΡ ΡΠ²Π΅Ρ ΠΈ ΡΠ΅ΠΊΠΎΡ ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²ΠΈ ΡΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΈ ΡΠ΅ΡΠΈΠΈ ΠΈΡΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½ΠΎ.
ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡ: Π΅ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡΠ΅Π½ Π·Π° ΡΠΏΠ°ΡΡΠ²Π°ΡΠ΅ Π½Π° Π½ΠΎΠ²ΠΈΠΎΡ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊ ΡΠΎ Π½Π°ΡΡΠΎΠΎΠ΄Π²Π΅ΡΠ½ΠΈΠΎΡ ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊ Π·Π° ΠΏΡΠ΅Π½ΠΎΡ. ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡΠΎΡ ΠΊΠΎΠΌΡΠ½ΠΈΡΠΈΡΠ° ΡΠΎ ΡΠ°Π±ΠΎΡΠ½ΠΈΡΠΈΡΠ΅ ΠΏΡΠ΅ΠΊΡ WebSocket.
Π‘ΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠΎΡΡΠΎΡΠ±Π°ΡΠ° Π½Π° ΠΈΠ³ΡΠ°ΡΠ°: ΡΠ΅Π½ΡΡΠ°Π»Π½ΠΎ Π΄Π°Π»Π΅ΡΠΈΠ½ΡΠΊΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π·Π° ΡΠΈΡΠ΅ ΡΠΎΡΡΠΎΡΠ±ΠΈ Π½Π° ΠΈΠ³ΡΠ°ΡΠ°. ΠΠ²Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° Π²Π°ΠΆΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠ°ΠΊΠΎ Π΄Π°Π»Π΅ΡΠΈΠ½ΡΠΊΠΎ Π·Π°ΡΡΠ²ΡΠ²Π°ΡΠ΅/Π²ΡΠΈΡΡΠ²Π°ΡΠ΅.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π° Π½Π°ΡΠ²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ Π½Π° CloudRetroΠΡΠΈΠ»Π°Π³ΠΎΠ΄Π΅Π½Π° ΡΠΊΡΠΈΠΏΡΠ°
ΠΠΎΠ³Π° Π½ΠΎΠ² ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊ ΡΠ΅ Π³ΠΎ ΠΎΡΠ²ΠΎΡΠΈ CloudRetro Π²ΠΎ ΡΠ΅ΠΊΠΎΡΠΈΡΠ΅ 1 ΠΈ 2 ΠΏΡΠΈΠΊΠ°ΠΆΠ°Π½ΠΈ Π½Π° ΡΠ»ΠΈΠΊΠ°ΡΠ° ΠΏΠΎΠ΄ΠΎΠ»Ρ, ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡΠΎΡ Π·Π°Π΅Π΄Π½ΠΎ ΡΠΎ ΡΠΏΠΈΡΠΎΠΊΠΎΡ Π½Π° Π΄ΠΎΡΡΠ°ΠΏΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ½ΠΈΡΠΈ ΡΠ΅ Π±Π°ΡΠ° Π½Π° ΠΏΡΠ²Π°ΡΠ° ΡΡΡΠ°Π½ΠΈΡΠ°. ΠΠΎ ΠΎΠ²Π°, Π²ΠΎ ΡΠ΅ΠΊΠΎΡ 3 ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΡ Π³ΠΈ ΠΏΡΠ΅ΡΠΌΠ΅ΡΡΠ²Π° Π΄ΠΎΡΠ½Π΅ΡΠ°ΡΠ° Π·Π° ΡΠΈΡΠ΅ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠΈ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Π±Π°ΡΠ°ΡΠ΅ Π·Π° ΠΏΠΈΠ½Π³ HTTP. ΠΠ²Π°Π° Π»ΠΈΡΡΠ° Π½Π° ΠΎΠ΄Π»ΠΎΠΆΡΠ²Π°ΡΠ° ΠΏΠΎΡΠΎΠ° ΡΠ΅ ΠΈΡΠΏΡΠ°ΡΠ° Π½Π°Π·Π°Π΄ Π΄ΠΎ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡΠΎΡ Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΎ ΠΎΠ΄ΡΠ΅Π΄ΠΈ Π½Π°ΡΡΠΎΠΎΠ΄Π²Π΅ΡΠ½ΠΈΠΎΡ ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊ Π·Π° Π΄Π° ΠΌΡ ΡΠ»ΡΠΆΠΈ Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ. Π§Π΅ΠΊΠΎΡ 4 ΠΏΠΎΠ΄ΠΎΠ»Ρ ΡΠ° ΠΊΡΠ΅ΠΈΡΠ° ΠΈΠ³ΡΠ°ΡΠ°. ΠΠΎΠΌΠ΅ΡΡ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ ΠΈ Π΄ΠΎΠ΄Π΅Π»Π΅Π½ΠΈΠΎΡ ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊ Π΅ Π²ΠΎΡΠΏΠΎΡΡΠ°Π²Π΅Π½Π° Π²ΡΡΠΊΠ° Π·Π° ΡΡΡΠΈΠΌΠΈΠ½Π³ WebRTC.
ΠΠΎΡΠΈΡΠ½ΠΈΡΠΊΠ° ΡΠΊΡΠΈΠΏΡΠ° ΠΏΠΎ Π΄ΠΎΠ±ΠΈΠ²Π°ΡΠ΅ΡΠΎ ΠΏΡΠΈΡΡΠ°ΠΏΠ¨ΡΠΎ ΠΈΠΌΠ° Π²Π½Π°ΡΡΠ΅ Π²ΠΎ ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΠΎΡ
ΠΠ°ΡΡΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅ Π·Π° ΠΈΠ³ΡΠΈ ΠΈ ΡΡΡΠΈΠΌΠΈΠ½Π³ ΡΠ΅ ΡΡΠ²Π°Π°Ρ Π²ΠΎ ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΠΎΡ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΎ ΠΈ ΡΠ°Π·ΠΌΠ΅Π½ΡΠ²Π°Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΠ°ΠΌΡ ΠΏΡΠ΅ΠΊΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡΠΎΡ. ΠΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ², ΠΎΠ²Π°Π° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡΠ° ΡΠ΅ Π²ΡΡΠΈ ΡΠΎ ΠΏΡΠ΅Π½ΠΎΡ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π²ΠΎ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ° ΠΏΡΠ΅ΠΊΡ
ΠΠΎΠ»Π°Π½Π³ ΠΊΠ°Π½Π°Π»ΠΈ Π²ΠΎ ΠΈΡΡΠΈΠΎΡ ΠΏΡΠΎΡΠ΅Ρ. Π‘Π»Π΅Π΄Π½Π° ΡΠ΅Π» Π΅ ΡΠ΅Π³ΡΠ΅Π³Π°ΡΠΈΡΠ°, Ρ.Π΅. Π½Π΅Π·Π°Π²ΠΈΡΠ½ΠΎ Π»Π°Π½ΡΠΈΡΠ°ΡΠ΅ Π½Π° ΠΈΠ³ΡΠ°ΡΠ° Π²ΠΎ Π΄ΡΡΠ³ ΠΏΡΠΎΡΠ΅Ρ.
ΠΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΈΡΠΊΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΠΠ»Π°Π²Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ:
- WebRTC: ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΊΠΎΡΠ° ΠΏΡΠΈΡΠ°ΡΠ° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΈ Π²Π»Π΅Π· ΠΈ ΠΈΠ·Π»Π΅Π³ΡΠ²Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½ΠΈ ΠΌΠ΅Π΄ΠΈΡΠΌΠΈ ΠΎΠ΄ ΡΠ΅ΡΠ²Π΅ΡΠΎΡ.
- ΠΠΌΡΠ»Π°ΡΠΎΡ Π·Π° ΠΈΠ³ΡΠΈ: ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π½Π° ΠΈΠ³ΡΠ°ΡΠ°. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Libretro, ΡΠΈΡΡΠ΅ΠΌΠΎΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ° Π²ΠΎΠ΄ΠΈ ΠΈΠ³ΡΠ°ΡΠ° Π²ΠΎ ΠΈΡΡΠΈΠΎΡ ΠΏΡΠΎΡΠ΅Ρ ΠΈ Π²Π½Π°ΡΡΠ΅ΡΠ½ΠΎ Π΄Π° Π³ΠΈ ΠΏΡΠ΅ΡΡΠ΅ΡΠ½ΡΠ²Π° ΠΌΠ΅Π΄ΠΈΡΠΌΠΈΡΠ΅ ΠΈ Π²Π»Π΅Π·Π½ΠΈΠΎΡ ΠΏΠΎΡΠΎΠΊ.
- Π Π°ΠΌΠΊΠΈΡΠ΅ Π²ΠΎ ΠΈΠ³ΡΠ°ΡΠ° ΡΠ΅ ΡΠ½ΠΈΠΌΠ°Π°Ρ ΠΈ ΡΠ΅ ΠΈΡΠΏΡΠ°ΡΠ°Π°Ρ Π΄ΠΎ Π΅Π½ΠΊΠΎΠ΄Π΅ΡΠΎΡ.
- ΠΠΎΠ΄Π΅Ρ Π·Π° ΡΠ»ΠΈΠΊΠ°/Π°ΡΠ΄ΠΈΠΎ: ΡΠ΅Π²ΠΊΠΎΠ²ΠΎΠ΄ Π·Π° ΠΊΠΎΠ΄ΠΈΡΠ°ΡΠ΅ ΡΡΠΎ Π·Π΅ΠΌΠ° ΠΌΠ΅Π΄ΠΈΡΠΌΡΠΊΠΈ ΡΠ°ΠΌΠΊΠΈ, Π³ΠΈ ΠΊΠΎΠ΄ΠΈΡΠ° Π²ΠΎ ΠΏΠΎΠ·Π°Π΄ΠΈΠ½Π° ΠΈ ΠΈΠ·Π»Π΅Π³ΡΠ²Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½ΠΈ ΡΠ»ΠΈΠΊΠΈ/Π°ΡΠ΄ΠΈΠΎ.
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ
CloudRetro ΡΠ΅ ΠΏΠΎΡΠΏΠΈΡΠ° Π½Π° WebRTC ΠΊΠ°ΠΊΠΎ Π½Π΅ΡΠ·ΠΈΠ½Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ° Π½Π° 'ΡΠ±Π΅ΡΠΎΡ, ΠΏΠ° ΠΏΡΠ΅Π΄ Π΄Π° ΡΠ΅ ΡΡΠ»Π°ΠΌ Π²ΠΎ Π΄Π΅ΡΠ°Π»ΠΈΡΠ΅ Π·Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ°ΡΠ° Π½Π° Golang, ΡΠ΅ΡΠΈΠ² Π΄Π° Π·Π±ΠΎΡΡΠ²Π°ΠΌ Π·Π° ΡΠ°ΠΌΠΈΠΎΡ WebRTC. ΠΠ²Π° Π΅ Π½Π΅Π²Π΅ΡΠΎΡΠ°ΡΠ½Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ° ΠΊΠΎΡΠ° ΠΌΠ½ΠΎΠ³Ρ ΠΌΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π° Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π°ΠΌ Π΄ΠΎΡΠ½Π΅ΡΠ΅ Π²ΠΎ ΡΠ΅ΠΊΡΠ½Π΄Π° Π·Π° ΠΏΡΠ΅Π½ΠΎΡ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ.
WebRTC
WebRTC Π΅ Π΄ΠΈΠ·Π°ΡΠ½ΠΈΡΠ°Π½ Π΄Π° ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ Π²ΠΈΡΠΎΠΊΠΎΠΊΠ²Π°Π»ΠΈΡΠ΅ΡΠ½ΠΈ peer-to-peer Π²ΡΡΠΊΠΈ Π½Π° Π΄ΠΎΠΌΠ°ΡΠ½ΠΈΡΠ΅ ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ ΠΏΡΠ΅Π»ΠΈΡΡΡΠ²Π°ΡΠΈ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΈ API.
NAT Traversal
WebRTC Π΅ ΠΏΠΎΠ·Π½Π°Ρ ΠΏΠΎ ΡΠ²ΠΎΡΠ°ΡΠ° NAT Traversal ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ. WebRTC Π΅ Π΄ΠΈΠ·Π°ΡΠ½ΠΈΡΠ°Π½ Π·Π° peer-to-peer ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡΠ°. ΠΠ΅Π³ΠΎΠ²Π°ΡΠ° ΡΠ΅Π» Π΅ Π΄Π° ΡΠ° Π½Π°ΡΠ΄Π΅ Π½Π°ΡΡΠΎΠΎΠ΄Π²Π΅ΡΠ½Π°ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠ½Π° ΡΡΡΠ°, ΠΈΠ·Π±Π΅Π³Π½ΡΠ²Π°ΡΡΠΈ Π³ΠΈ NAT ΠΏΠΎΡΡΠΈΡΠ΅ ΠΈ Π·Π°ΡΡΠΈΡΠ½ΠΈΡΠ΅ ΡΠΈΠ΄ΠΎΠ²ΠΈ Π·Π° peer-to-peer ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡΠ° ΠΏΡΠ΅ΠΊΡ ΠΏΡΠΎΡΠ΅Ρ Ρ.Π½.
ICE . ΠΠ°ΠΊΠΎ Π΄Π΅Π» ΠΎΠ΄ ΠΎΠ²ΠΎΡ ΠΏΡΠΎΡΠ΅Ρ, WebRTC API-ΠΈΡΠ΅ ΡΠ° Π½Π°ΠΎΡΠ°Π°Ρ Π²Π°ΡΠ°ΡΠ° ΡΠ°Π²Π½Π° IP Π°Π΄ΡΠ΅ΡΠ° ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ STUN ΡΠ΅ΡΠ²Π΅ΡΠΈ ΠΈ ΡΠ° ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π°Ρ Π΄ΠΎ ΡΠ΅Π»Π΅ΡΠ½ΠΈΠΎΡ ΡΠ΅ΡΠ²Π΅Ρ (ΠΠ ΠΠΠ ) ΠΊΠΎΠ³Π° Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²ΠΎΡΠΏΠΎΡΡΠ°Π²ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½Π° Π²ΡΡΠΊΠ°.Π‘Π΅ΠΏΠ°ΠΊ, CloudRetro Π½Π΅ ΡΠ° ΠΈΡΠΊΠΎΡΠΈΡΡΡΠ²Π° ΡΠ΅Π»ΠΎΡΠ½ΠΎ ΠΎΠ²Π°Π° ΡΡΠ½ΠΊΡΠΈΡΠ°. ΠΠ΅Π³ΠΎΠ²ΠΈΡΠ΅ peer-to-peer Π²ΡΡΠΊΠΈ Π½Π΅ ΠΏΠΎΡΡΠΎΡΠ°Ρ ΠΏΠΎΠΌΠ΅ΡΡ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅, ΡΡΠΊΡ ΠΏΠΎΠΌΠ΅ΡΡ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅ ΠΈ ΠΎΠ±Π»Π°ΠΊ ΡΠ΅ΡΠ²Π΅ΡΠΈΡΠ΅. ΠΠ° ΡΡΡΠ°Π½Π°ΡΠ° Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠΎΡ Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΎΡ ΠΈΠΌΠ° ΠΏΠΎΠΌΠ°Π»ΠΊΡ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ° Π·Π° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡΠ° ΠΎΠ΄ ΡΠΈΠΏΠΈΡΠ΅Π½ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΈ ΡΡΠ΅Π΄. ΠΠ²Π° Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° ΠΎΠ΄Π½Π°ΠΏΡΠ΅Π΄ Π΄Π° Π³ΠΈ ΠΎΡΠ²ΠΎΡΠΈΡΠ΅ Π΄ΠΎΡΠ΄ΠΎΠ²Π½ΠΈΡΠ΅ ΠΏΠΎΡΡΠΈ ΠΈΠ»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π΄Π° Π³ΠΈ ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ ΡΠ°Π²Π½ΠΈΡΠ΅ IP Π°Π΄ΡΠ΅ΡΠΈ, Π±ΠΈΠ΄Π΅ΡΡΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΡ Π½Π΅ ΡΡΠΎΠΈ Π·Π°Π΄ NAT.
ΠΡΠ΅ΡΡ ΠΎΠ΄Π½ΠΎ, ΡΠ°ΠΊΠ°Π² Π΄Π° Π³ΠΎ ΠΏΡΠ΅ΡΠ²ΠΎΡΠ°ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ Π²ΠΎ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π·Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΠ° Π½Π° ΠΈΠ³ΡΠΈ Π·Π° Cloud Gaming. ΠΠ΄Π΅ΡΠ°ΡΠ° Π±Π΅ΡΠ΅ Π΄Π° ΠΈΠΌ ΡΠ΅ Π΄ΠΎΠ·Π²ΠΎΠ»ΠΈ Π½Π° ΠΊΡΠ΅Π°ΡΠΎΡΠΈΡΠ΅ Π½Π° ΠΈΠ³ΡΠΈ Π΄Π° ΠΎΠ±Π΅Π·Π±Π΅Π΄Π°Ρ ΠΈΠ³ΡΠΈ ΠΈ ΡΠ΅ΡΡΡΡΠΈ Π·Π° ΡΡΡΠΈΠΌΠΈΠ½Π³. Π ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π±ΠΈ ΠΊΠΎΠΌΡΠ½ΠΈΡΠΈΡΠ°Π»Π΅ ΡΠΎ ΠΏΡΠΎΠ²Π°ΡΠ΄Π΅ΡΠΈΡΠ΅. ΠΠ° ΠΎΠ²ΠΎΡ Π΄Π΅ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π½Π°ΡΠΈΠ½, CloudRetro Π΅ ΡΠ°ΠΌΠΎ ΡΠ°ΠΌΠΊΠ° Π·Π° ΠΏΠΎΠ²ΡΠ·ΡΠ²Π°ΡΠ΅ Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅ Π·Π° ΡΡΡΠΈΠΌΠΈΠ½Π³ ΠΎΠ΄ ΡΡΠ΅ΡΠΈ ΡΡΡΠ°Π½ΠΈ ΡΠΎ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅, ΡΡΠΎ Π³ΠΎ ΠΏΡΠ°Π²ΠΈ ΠΏΠΎΡΠΊΠ°Π»Π°Π±ΠΈΠ»Π΅Π½ ΠΊΠΎΠ³Π° Π²Π΅ΡΠ΅ Π½Π΅ Π΅ Ρ ΠΎΡΡΠΈΡΠ°Π½. Π£Π»ΠΎΠ³Π°ΡΠ° Π½Π° WebRTC NAT Traversal ΠΎΠ²Π΄Π΅ Π΅ ΠΌΠ½ΠΎΠ³Ρ Π²Π°ΠΆΠ½Π° Π·Π° Π΄Π° ΡΠ΅ ΠΎΠ»Π΅ΡΠ½ΠΈ ΠΈΠ½ΠΈΡΠΈΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡΠ°ΡΠ° Π½Π° peer-to-peer ΠΊΠΎΠ½Π΅ΠΊΡΠΈΡΠ° Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅ Π·Π° ΡΡΡΠΈΠΌΠΈΠ½Π³ ΠΎΠ΄ ΡΡΠ΅ΡΠ° ΡΡΡΠ°Π½Π°, ΡΡΠΎ Π³ΠΎ ΠΎΠ»Π΅ΡΠ½ΡΠ²Π° ΠΏΠΎΠ²ΡΠ·ΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΊΡΠ΅Π°ΡΠΎΡΠΎΡ Π½Π° ΠΌΡΠ΅ΠΆΠ°ΡΠ°.
ΠΠΈΠ΄Π΅ΠΎ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°
ΠΠΈΠ΄Π΅ΠΎ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°ΡΠ° Π΅ Π½Π΅Π·Π°ΠΌΠ΅Π½Π»ΠΈΠ² Π΄Π΅Π» ΠΎΠ΄ ΡΠ΅Π²ΠΊΠΎΠ²ΠΎΠ΄ΠΎΡ ΠΈ Π²ΠΎ Π³ΠΎΠ»Π΅ΠΌΠ° ΠΌΠ΅ΡΠ° ΠΏΡΠΈΠ΄ΠΎΠ½Π΅ΡΡΠ²Π° Π·Π° Π½Π΅ΠΏΡΠ΅ΡΠ΅Π½ ΠΏΡΠΎΡΠΎΠΊ. ΠΠ°ΠΊΠΎ Π½Π΅ Π΅ Π½Π΅ΠΎΠΏΡ ΠΎΠ΄Π½ΠΎ Π΄Π° ΡΠ΅ Π·Π½Π°Π΅ ΡΠ΅ΠΊΠΎΡ Π΄Π΅ΡΠ°Π» ΠΎΠ΄ ΠΊΠΎΠ΄ΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° Π²ΠΈΠ΄Π΅ΠΎΡΠΎ VP8/H264, ΡΠ°Π·Π±ΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π΄Π° Π³ΠΈ ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΎΠΏΡΠΈΠΈΡΠ΅ Π·Π° Π±ΡΠ·ΠΈΠ½Π° Π½Π° ΡΡΡΠΈΠΌΠΈΠ½Π³ Π²ΠΈΠ΄Π΅ΠΎ, Π΄Π° Π΄Π΅Π±Π°Π³ΠΈΡΠ°ΡΠ΅ Π½Π΅ΠΎΡΠ΅ΠΊΡΠ²Π°Π½ΠΎ ΠΎΠ΄Π½Π΅ΡΡΠ²Π°ΡΠ΅ ΠΈ Π΄Π° ΡΠ° ΠΏΡΠΈΠ»Π°Π³ΠΎΠ΄ΠΈΡΠ΅ Π»Π°ΡΠ΅Π½ΡΠ½ΠΎΡΡΠ°.
ΠΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° Π²ΠΈΠ΄Π΅ΠΎΡΠΎ Π·Π° ΡΡΠ»ΡΠ³Π° Π·Π° ΡΡΡΠΈΠΌΠΈΠ½Π³ Π΅ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊ Π±ΠΈΠ΄Π΅ΡΡΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΡ ΠΌΠΎΡΠ° Π΄Π° ΠΎΡΠΈΠ³ΡΡΠ° Π΄Π΅ΠΊΠ° Π²ΠΊΡΠΏΠ½ΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΊΠΎΠ΄ΠΈΡΠ°ΡΠ΅ + Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΏΡΠ΅Π½ΠΎΡ Π½Π° ΠΌΡΠ΅ΠΆΠ° + Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°ΡΠ΅ Π΅ ΡΡΠΎ Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΡΠΊΠΎ. ΠΠΎΠΊΡΠ°Ρ ΡΠΎΠ°, ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π½Π° ΠΊΠΎΠ΄ΠΈΡΠ°ΡΠ΅ ΠΌΠΎΡΠ° Π΄Π° Π±ΠΈΠ΄Π΅ ΠΊΠΎΠ½Π·ΠΈΡΡΠ΅Π½ΡΠ΅Π½ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ½ΡΠΈΡΠ°Π½. ΠΠ΅ΠΊΠΎΠΈ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΠΈ Π·Π° ΠΊΠΎΠ΄ΠΈΡΠ°ΡΠ΅ Π½Π΅ ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ²Π°Π°Ρ - Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° Π³ΠΈ ΡΠ°Π²ΠΎΡΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ Π΄ΠΎΠ»Π³ΠΈΡΠ΅ Π²ΡΠ΅ΠΌΠΈΡΠ° Π½Π° ΠΊΠΎΠ΄ΠΈΡΠ°ΡΠ΅ ΠΏΡΠ΅Π΄ ΠΏΠΎΠΌΠ°Π»ΠΈΡΠ΅ Π³ΠΎΠ»Π΅ΠΌΠΈΠ½ΠΈ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΠΈ Π²ΡΠ΅ΠΌΠΈΡΠ°ΡΠ° Π½Π° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°ΡΠ΅ ΠΈΠ»ΠΈ Π΄Π° ΠΊΠΎΡΠΈΡΡΠΈΠΌΠ΅ Π½Π΅ΠΊΠΎΠ½Π·ΠΈΡΡΠ΅Π½ΡΠ½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°.
ΠΠ΄Π΅ΡΠ°ΡΠ° Π·Π°Π΄ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ° Π½Π° Π²ΠΈΠ΄Π΅ΠΎΡΠΎ Π΅ Π΄Π° ΡΠ΅ Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡΠ°Π°Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π±Π½ΠΈΡΠ΅ Π΄Π΅Π»ΠΎΠ²ΠΈ ΠΎΠ΄ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π΄ΠΎΠ΄Π΅ΠΊΠ° ΡΠ΅ ΠΎΠ΄ΡΠΆΡΠ²Π° ΠΏΡΠΈΡΠ°ΡΠ»ΠΈΠ²ΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΡΠΎΡΠ½ΠΎΡΡ Π·Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅. ΠΠΎΠΊΡΠ°Ρ ΠΊΠΎΠ΄ΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° ΠΏΠΎΠ΅Π΄ΠΈΠ½Π΅ΡΠ½ΠΈ ΡΡΠ°ΡΠΈΡΠ½ΠΈ ΡΠ°ΠΌΠΊΠΈ Π½Π° ΡΠ»ΠΈΠΊΠΈ, Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΡ ΡΠ° Π·Π°ΠΊΠ»ΡΡΡΠ²Π° ΡΠ΅ΠΊΠΎΠ²Π½Π°ΡΠ° ΡΠ°ΠΌΠΊΠ° ΠΎΠ΄ ΠΏΡΠ΅ΡΡ ΠΎΠ΄Π½Π°ΡΠ° ΠΈ ΡΠ»Π΅Π΄Π½Π°ΡΠ°, ΡΠ°ΠΊΠ° ΡΡΠΎ ΡΠ΅ ΠΈΡΠΏΡΠ°ΡΠ° ΡΠ°ΠΌΠΎ Π½ΠΈΠ²Π½Π°ΡΠ° ΡΠ°Π·Π»ΠΈΠΊΠ°. ΠΠ°ΠΊΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²ΠΈΠ΄ΠΈ ΠΎΠ΄ ΠΏΡΠΈΠΌΠ΅ΡΠΎΡ ΡΠΎ Pacman, ΡΠ΅ ΠΏΡΠ΅Π½Π΅ΡΡΠ²Π°Π°Ρ ΡΠ°ΠΌΠΎ Π΄ΠΈΡΠ΅ΡΠ΅Π½ΡΠΈΡΠ°Π»Π½ΠΈ ΡΠΎΡΠΊΠΈ.
Π‘ΠΏΠΎΡΠ΅Π΄Π±Π° Π½Π° Π²ΠΈΠ΄Π΅ΠΎ ΡΠ°ΠΌΠΊΠΈ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Pacman ΠΊΠ°ΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΡΠ΄ΠΈΠΎ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°
Π‘Π»ΠΈΡΠ½ΠΎ Π½Π° ΡΠΎΠ°, Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΡ Π·Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ° Π½Π° Π°ΡΠ΄ΠΈΠΎ Π³ΠΈ ΠΈΡΠΏΡΡΡΠ° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ ΡΡΠΎ Π»ΡΡΠ΅ΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ°Ρ Π΄Π° Π³ΠΈ ΠΏΠ΅ΡΡΠ΅ΠΏΠΈΡΠ°Π°Ρ. Opus ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»Π½ΠΎ Π΅ Π°ΡΠ΄ΠΈΠΎ ΠΊΠΎΠ΄Π΅ΠΊ ΡΠΎ Π½Π°ΡΠ΄ΠΎΠ±ΡΠΈ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈ. Π’ΠΎΡ Π΅ Π΄ΠΈΠ·Π°ΡΠ½ΠΈΡΠ°Π½ Π΄Π° ΠΏΡΠ΅Π½Π΅ΡΡΠ²Π° Π°ΡΠ΄ΠΈΠΎ Π±ΡΠ°Π½ ΠΏΡΠ΅ΠΊΡ Π½Π°ΡΠ°ΡΠ°Π½ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π·Π° Π΄Π°ΡΠ°Π³ΡΠ°ΠΌ ΠΊΠ°ΠΊΠΎ ΡΡΠΎ Π΅ RTP (Real Time Transport Protocol). ΠΠ΅Π³ΠΎΠ²Π°ΡΠ° Π»Π°ΡΠ΅Π½ΡΠ½ΠΎΡΡ Π΅ ΠΏΠΎΠΌΠ°Π»Π° ΠΎΠ΄ mp3 ΠΈ aac, Π° ΠΊΠ²Π°Π»ΠΈΡΠ΅ΡΠΎΡ Π΅ ΠΏΠΎΠ²ΠΈΡΠΎΠΊ. ΠΠ°ΡΠ΅Π½ΡΠ½ΠΎΡΡΠ° Π΅ ΠΎΠ±ΠΈΡΠ½ΠΎ ΠΎΠΊΠΎΠ»Ρ 5~66,5ms.
Pion, WebRTC Π²ΠΎ ΠΠΎΠ»Π°Π½Π³
ΠΠΈΠΎΠ½ Π΅ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ ΠΊΠΎΡ Π³ΠΎ Π½ΠΎΡΠΈ WebRTC Π²ΠΎ Golang. ΠΠ°ΠΌΠ΅ΡΡΠΎ Π²ΠΎΠΎΠ±ΠΈΡΠ°Π΅Π½ΠΎΡΠΎ Π·Π°Π²ΠΈΡΠΊΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΡΠΈΡΠΎΠ΄Π½ΠΈΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π½Π° C++ WebRTC, Pion Π΅ Π΄ΠΎΠΌΠ°ΡΠ½Π° Golang ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° Π½Π° WebRTC ΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈ, Go ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠ° ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π½Π° Π²Π΅ΡΠ·ΠΈΡΠ°ΡΠ° Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈΡΠ΅ WebRTC.ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ°, ΠΈΡΡΠΎ ΡΠ°ΠΊΠ°, ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° ΡΡΡΠΈΠΌΠΈΠ½Π³ ΡΠΎ ΠΌΠ½ΠΎΠ³Ρ ΠΎΠ΄Π»ΠΈΡΠ½ΠΈ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΡΠΎ ΠΏΠΎΠ΄-Π²ΡΠΎΡΠ° Π»Π°ΡΠ΅Π½ΡΠ½ΠΎΡΡ. ΠΠΌΠ° ΡΠ²ΠΎΡΠ° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° Π½Π° STUN, DTLS, SCTP ΠΈΡΠ½. ΠΈ Π½Π΅ΠΊΠΎΠΈ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈ ΡΠΎ QUIC ΠΈ WebAssembly. ΠΠ²Π°Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ ΡΠ°ΠΌΠ° ΠΏΠΎ ΡΠ΅Π±Π΅ Π΅ Π½Π°Π²ΠΈΡΡΠΈΠ½Π° Π΄ΠΎΠ±Π°Ρ ΡΠ΅ΡΡΡΡ Π·Π° ΡΡΠ΅ΡΠ΅ ΡΠΎ ΠΎΠ΄Π»ΠΈΡΠ½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ°, ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° Π½Π° ΠΌΡΠ΅ΠΆΠ΅Π½ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΈ ΠΎΠ΄Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΈ.
ΠΠ°Π΅Π΄Π½ΠΈΡΠ°ΡΠ° Π½Π° Pion, ΠΏΡΠ΅Π΄Π²ΠΎΠ΄Π΅Π½Π° ΠΎΠ΄ ΠΌΠ½ΠΎΠ³Ρ ΡΡΡΠ°ΡΡΠ΅Π½ ΠΊΡΠ΅Π°ΡΠΎΡ, Π΅ Π΄ΠΎΡΡΠ° ΠΆΠΈΠ²Π°, ΡΠΎ ΠΌΠ½ΠΎΠ³Ρ ΠΊΠ²Π°Π»ΠΈΡΠ΅ΡΠ½ΠΈ Π΄ΠΈΡΠΊΡΡΠΈΠΈ ΠΊΠΎΠΈ ΡΠ΅ Π²ΠΎΠ΄Π°Ρ Π·Π° WebRTC. ΠΠΎΠΊΠΎΠ»ΠΊΡ ΡΡΠ΅ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΈΡΠ°Π½ΠΈ Π·Π° ΠΎΠ²Π°Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ°, ΠΏΡΠΈΠ΄ΡΡΠΆΠ΅ΡΠ΅ ΡΠ΅
http://pion.ly/slack β ΡΠ΅ Π½Π°ΡΡΠΈΡΠ΅ ΠΌΠ½ΠΎΠ³Ρ Π½ΠΎΠ²ΠΈ ΡΠ°Π±ΠΎΡΠΈ.ΠΠΈΡΡΠ²Π°ΡΠ΅ CloudRetro Π½Π° Golang
ΠΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊ Π²ΠΎ ΠΠΎΠΠ΄Π΅ΡΠ΅ Π½Π° ΠΊΠ°Π½Π°Π»ΠΈ Π²ΠΎ Π°ΠΊΡΠΈΡΠ°
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΈΠΎΡ Π΄ΠΈΠ·Π°ΡΠ½ Π½Π° ΠΊΠ°Π½Π°Π»ΠΎΡ Π½Π° Go, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ ΡΠΎ ΠΏΡΠ΅Π½ΠΎΡΠΎΡ Π½Π° Π½Π°ΡΡΠ°Π½ΠΈ ΠΈ ΠΈΡΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½ΠΎΡΠΎ ΡΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π΅Π½ΠΈ. ΠΠ°ΠΊΠΎ ΠΈ Π½Π° Π΄ΠΈΡΠ°Π³ΡΠ°ΠΌΠΎΡ, ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ GoRoutines ΠΈΠΌΠ°Π°Ρ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ ΠΊΠΎΠΈ ΡΠ°Π±ΠΎΡΠ°Ρ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ. Π‘Π΅ΠΊΠΎΡΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΡΠΏΡΠ°Π²ΡΠ²Π° ΡΠΎ ΡΠ²ΠΎΡΠ°ΡΠ° ΡΠΎΡΡΠΎΡΠ±Π° ΠΈ ΠΊΠΎΠΌΡΠ½ΠΈΡΠΈΡΠ° ΠΏΡΠ΅ΠΊΡ ΠΊΠ°Π½Π°Π»ΠΈ. Π‘Π΅Π»Π΅ΠΊΡΠΈΠ²Π½ΠΎΡΠΎ ΡΠ²ΡΠ΄Π΅ΡΠ΅ Π½Π° ΠΠΎΠ»Π°Π½Π³ ΠΏΡΠΈΠ½ΡΠ΄ΡΠ²Π° Π΅Π΄Π΅Π½ Π°ΡΠΎΠΌΡΠΊΠΈ Π½Π°ΡΡΠ°Π½ Π΄Π° ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠ²Π° ΡΠ΅ΠΊΠΎΡ ΠΏΠ°Ρ Π²ΠΎ ΠΈΠ³ΡΠ°ΡΠ° (ΡΡΠΈΠΊΠ»ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΈΠ³ΡΠ°ΡΠ°). ΠΠ²Π° Π·Π½Π°ΡΠΈ Π΄Π΅ΠΊΠ° Π½Π΅ Π΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ Π·Π°ΠΊΠ»ΡΡΡΠ²Π°ΡΠ΅ Π·Π° ΠΎΠ²ΠΎΡ Π΄ΠΈΠ·Π°ΡΠ½. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ Π·Π°ΡΡΠ²ΡΠ²Π°, ΠΏΠΎΡΡΠ΅Π±Π½Π° Π΅ ΡΠ΅Π»ΠΎΡΠ½Π° ΡΠ»ΠΈΠΊΠ° ΠΎΠ΄ ΡΠΎΡΡΠΎΡΠ±Π°ΡΠ° Π½Π° ΠΈΠ³ΡΠ°ΡΠ°. ΠΠ²Π°Π° ΡΠΎΡΡΠΎΡΠ±Π° ΡΡΠ΅Π±Π° Π΄Π° ΠΎΡΡΠ°Π½Π΅ ΠΊΠΎΠ½ΡΠΈΠ½ΡΠΈΡΠ°Π½Π°, Π½Π°ΡΠ°Π²ΡΠ²Π°ΡΡΠΈ ΡΠ΅ Π΄ΠΎΠ΄Π΅ΠΊΠ° Π½Π΅ Π·Π°Π²ΡΡΠΈ Π·Π°ΡΡΠ²ΡΠ²Π°ΡΠ΅ΡΠΎ. ΠΠ° Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠ΅ΠΊΠΎΡ ΡΡΠΈΠΊΠ»ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΈΠ³ΡΠ°ΡΠ°, Π·Π°Π΄Π½ΠΈΠΎΡ Π΄Π΅Π» ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²ΠΈ ΡΠ°ΠΌΠΎ ΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠ° Π·Π° Π·Π°ΡΡΠ²ΡΠ²Π°ΡΠ΅ ΠΈΠ»ΠΈ Π²Π½Π΅ΡΡΠ²Π°ΡΠ΅, ΡΡΠΎ ΡΠ° ΠΏΡΠ°Π²ΠΈ Π½ΠΈΡΠΊΠ°ΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π±Π΅Π·Π±Π΅Π΄Π½Π°.
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 ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈΠ³ΡΠ°ΡΠΈ. Π‘Π»Π΅Π΄Π΅ΡΡΠΈ ΡΠ° ΠΎΠ²Π°Π° ΡΠ΅ΠΌΠ°, ΡΠΈΡΠ΅ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΈ Π²Π»Π΅Π·ΠΎΠ²ΠΈ Π²ΠΎ Π΅Π΄Π½Π° ΠΏΡΠΎΡΡΠΎΡΠΈΡΠ° ΡΠ΅ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ Π²ΠΎ ΡΠ΅Π½ΡΡΠ°Π»Π½ΠΈΠΎΡ Π²Π»Π΅Π·Π΅Π½ ΠΊΠ°Π½Π°Π». ΠΠ΅Π΄ΠΈΡΠΌΠΈΡΠ΅ Π·Π° ΠΈΠ³ΡΠΈ ΠΏΠΎΡΠΎΠ° ΡΠ΅ ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ΡΠ²Π°Π°Ρ Π½Π° ΡΠΈΡΠ΅ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈ Π²ΠΎ ΠΈΡΡΠ° ΠΏΡΠΎΡΡΠΎΡΠΈΡΠ°. ΠΠ° ΠΎΠ²ΠΎΡ Π½Π°ΡΠΈΠ½, ΠΏΠΎΡΡΠΈΠ³Π½ΡΠ²Π°ΠΌΠ΅ ΠΏΠΎΠ΄Π΅Π»Π±Π° Π½Π° ΡΠΎΡΡΠΎΡΠ±Π°ΡΠ° Π½Π° ΠΈΠ³ΡΠ°ΡΠ° ΠΏΠΎΠΌΠ΅ΡΡ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΡΠ΅ΡΠΈΠΈ Π½Π° ΠΈΠ³ΡΠΈ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈ.
Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡΠ° ΠΏΠΎΠΌΠ΅ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ΅ΡΠΈΠΈΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠΈ Π½Π° ΠΠΎΠ»Π°Π½Π³
ΠΠΎΠ»Π°Π½Π³ Π½Π΅ Π΅ ΡΠΎΠ²ΡΡΠ΅Π½. ΠΠ°Π½Π°Π»ΠΎΡ Π΅ Π±Π°Π²Π΅Π½. ΠΠΎ ΡΠΏΠΎΡΠ΅Π΄Π±Π° ΡΠΎ Π±Π»ΠΎΠΊΠΈΡΠ°ΡΠ΅ΡΠΎ, ΠΊΠ°Π½Π°Π»ΠΎΡ Go Π΅ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ ΠΏΠΎΠ»Π΅ΡΠ΅Π½ Π½Π°ΡΠΈΠ½ Π·Π° ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠΎ ΠΈΡΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΏΠΎΠ²ΡΠ·Π°Π½ΠΈ Π½Π°ΡΡΠ°Π½ΠΈ, Π½ΠΎ ΠΊΠ°Π½Π°Π»ΠΎΡ Π½Π΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° Π½Π°ΡΠ΄ΠΎΠ±ΡΠΈ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈ. ΠΠΌΠ° ΡΠ»ΠΎΠΆΠ΅Π½Π° Π±Π»ΠΎΠΊΠΈΡΠ°ΡΠΊΠ° Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΠΎΠ΄ ΠΊΠ°Π½Π°Π»ΠΎΡ. Π’Π°ΠΊΠ°, Π½Π°ΠΏΡΠ°Π²ΠΈΠ² Π½Π΅ΠΊΠΎΠΈ ΠΏΡΠΈΠ»Π°Π³ΠΎΠ΄ΡΠ²Π°ΡΠ° Π½Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ°ΡΠ°, ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ²Π°ΡΡΠΈ Π±ΡΠ°Π²ΠΈ ΠΈ Π°ΡΠΎΠΌΡΠΊΠΈ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈ ΠΏΡΠΈ Π·Π°ΠΌΠ΅Π½Π° Π½Π° ΠΊΠ°Π½Π°Π»ΠΈΡΠ΅ Π·Π° Π΄Π° Π³ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°ΠΌ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅.
ΠΠΎΠΊΡΠ°Ρ ΡΠΎΠ°, ΡΠΎΠ±ΠΈΡΠ°ΡΠΎΡ Π½Π° ΡΡΠ±ΡΠ΅ Π²ΠΎ ΠΠΎΠ»Π°Π½Π³ Π½Π΅ Π΅ ΡΠΏΡΠ°Π²ΡΠ²Π°Π½, ΡΡΠΎ ΠΏΠΎΠ½Π΅ΠΊΠΎΠ³Π°Ρ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΡΠ²Π° ΡΠΎΠΌΠ½ΠΈΡΠ΅Π»Π½ΠΎ Π΄ΠΎΠ»Π³ΠΈ ΠΏΠ°ΡΠ·ΠΈ. ΠΠ²Π° Π²ΠΎ Π³ΠΎΠ»Π΅ΠΌΠ° ΠΌΠ΅ΡΠ° ΡΠ΅ ΠΌΠ΅ΡΠ° ΡΠΎ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° Π·Π° ΡΡΡΠΈΠΌΠΈΠ½Π³ Π²ΠΎ ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅.
Π¦ΠΠ
ΠΡΠΎΠ΅ΠΊΡΠΎΡ ΡΠ° ΠΊΠΎΡΠΈΡΡΠΈ ΠΏΠΎΡΡΠΎΠ΅ΡΠΊΠ°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ Golang VP8/H264 Π·Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ° Π½Π° ΠΌΠ΅Π΄ΠΈΡΠΌΠΈ ΠΈ Libretro Π·Π° Π΅ΠΌΡΠ»Π°ΡΠΎΡΠΈ Π½Π° ΠΈΠ³ΡΠΈ. Π‘ΠΈΡΠ΅ ΠΎΠ²ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠ΅ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° C Π²ΠΎ Go ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ
Π¦ΠΠ . ΠΠ΅ΠΊΠΎΠΈ ΠΎΠ΄ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠΈΡΠ΅ ΡΠ΅ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈ Π²ΠΎΠΎΠ²ΠΎΡ ΠΏΠΎΡΡ Π½Π° ΠΠ΅ΡΠ² Π§Π΅ΡΠ½ΠΈ . ΠΡΠΎΠ±Π»Π΅ΠΌΠΈ Π½Π° ΠΊΠΎΠΈ Π½Π°ΠΈΠ΄ΠΎΠ²:- Π½Π΅ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° ΡΠ΅ ΡΠ°ΡΠΈ Π½Π΅ΡΡΠ΅ΡΠ° Π²ΠΎ CGO, Π΄ΡΡΠΈ ΠΈ ΡΠΎ Golang RecoveryCrash;
- Π½Π΅ΡΡΠΏΠ΅Ρ ΠΎΡ Π΄Π° ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΡΠ²Π°Π°Ρ ΡΠ΅ΡΠ½ΠΈΡΠ΅ Π³ΡΠ»Π° Π²ΠΎ ΠΈΠ·Π²Π΅Π΄Π±Π°ΡΠ° ΠΊΠΎΠ³Π° Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° ΠΎΡΠΊΡΠΈΠ΅ΠΌΠ΅ Π΄Π΅ΡΠ°Π»Π½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π²ΠΎ CGO.
ΠΠ°ΠΊΠ»ΡΡΠΎΠΊ
ΠΠ° ΠΏΠΎΡΡΠΈΠ³Π½Π°Π² ΠΌΠΎΡΠ°ΡΠ° ΡΠ΅Π» Π΄Π° Π³ΠΈ ΡΠ°Π·Π±Π΅ΡΠ°ΠΌ ΡΡΠ»ΡΠ³ΠΈΡΠ΅ Π·Π° ΠΎΠ±Π»Π°ΠΊ ΠΈΠ³ΡΠΈ ΠΈ Π΄Π° ΡΠΎΠ·Π΄Π°Π΄Π°ΠΌ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΊΠΎΡΠ° ΠΌΠΈ ΠΏΠΎΠΌΠ°Π³Π° Π΄Π° ΠΈΠ³ΡΠ°ΠΌ Π½ΠΎΡΡΠ°Π»Π³ΠΈΡΠ½ΠΈ ΡΠ΅ΡΡΠΎ ΠΈΠ³ΡΠΈ ΡΠΎ ΠΌΠΎΠΈΡΠ΅ ΠΏΡΠΈΡΠ°ΡΠ΅Π»ΠΈ ΠΎΠ½Π»Π°ΡΠ½. ΠΠ²ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π΅ΠΌΠ°ΡΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π±Π΅Π· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° ΠΠΈΠΎΠ½ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ°ΡΠ° ΠΎΠ΄ Π·Π°Π΅Π΄Π½ΠΈΡΠ°ΡΠ° ΠΠΈΠΎΠ½. ΠΠ°Ρ ΡΡΠΌ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ Π·Π° Π½Π΅Π³ΠΎΠ²ΠΈΠΎΡ ΠΈΠ½ΡΠ΅Π½Π·ΠΈΠ²Π΅Π½ ΡΠ°Π·Π²ΠΎΡ. ΠΠ΄Π½ΠΎΡΡΠ°Π²Π½ΠΈΡΠ΅ API ΠΎΠ±Π΅Π·Π±Π΅Π΄Π΅Π½ΠΈ ΠΎΠ΄ WebRTC ΠΈ Pion ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈΡΠ° Π±Π΅ΡΠΏΡΠ΅ΠΊΠΎΡΠ½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠ°. ΠΠΎΡΠΎΡ ΠΏΡΠ² Π΄ΠΎΠΊΠ°Π· Π·Π° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΎΡ Π±Π΅ΡΠ΅ ΠΎΠ±ΡΠ°Π²Π΅Π½ ΠΈΡΡΠ°ΡΠ° Π½Π΅Π΄Π΅Π»Π°, ΠΈΠ°ΠΊΠΎ Π½Π΅ΠΌΠ°Π² ΠΏΡΠ΅ΡΡ ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅ Π½Π° peer-to-peer (P2P) ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡΠ°.
Π ΠΏΠΎΠΊΡΠ°Ρ Π»Π΅ΡΠ½ΠΎΡΠΈΡΠ°ΡΠ° Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠ°, P2P ΡΡΡΠΈΠΌΠΈΠ½Π³ΠΎΡ Π΅ Π½Π°Π²ΠΈΡΡΠΈΠ½Π° ΠΌΠ½ΠΎΠ³Ρ ΡΠ»ΠΎΠΆΠ΅Π½Π° ΠΎΠ±Π»Π°ΡΡ Π²ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡΠΊΠ°ΡΠ° Π½Π°ΡΠΊΠ°. Π’Π°Π° ΠΌΠΎΡΠ° Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²ΠΈ ΡΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ΠΎΡΡΠ° Π½Π° Π΄ΠΎΠ»Π³ΠΎΡΡΠ°ΡΠ½ΠΈΡΠ΅ ΠΌΡΠ΅ΠΆΠ½ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅ IP ΠΈ NAT Π·Π° Π΄Π° ΡΠΎΠ·Π΄Π°Π΄Π΅ peer-to-peer ΡΠ΅ΡΠΈΡΠ°. ΠΠΎΠ΄Π΅ΠΊΠ° ΡΠ°Π±ΠΎΡΠ΅Π² Π½Π° ΠΎΠ²ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ, ΡΡΠ΅ΠΊΠ½Π°Π² ΠΌΠ½ΠΎΠ³Ρ Π²ΡΠ΅Π΄Π½ΠΈ Π·Π½Π°Π΅ΡΠ° Π·Π° Π²ΠΌΡΠ΅ΠΆΡΠ²Π°ΡΠ΅ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΠ° Π½Π° ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅, Π·Π°ΡΠΎΠ° Π³ΠΈ ΠΎΡ ΡΠ°Π±ΡΡΠ²Π°ΠΌ ΡΠΈΡΠ΅ Π΄Π° ΡΠ΅ ΠΎΠ±ΠΈΠ΄Π°Ρ Π΄Π° Π³ΡΠ°Π΄Π°Ρ P2P ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ WebRTC.
CloudRetro ΠΎΠ΄Π³ΠΎΠ²Π°ΡΠ° Π½Π° ΡΠΈΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ Π½Π° ΡΠΏΠΎΡΡΠ΅Π±Π° ΡΡΠΎ Π³ΠΈ ΠΎΡΠ΅ΠΊΡΠ²Π°Π² ΠΎΠ΄ ΠΌΠΎΡΠ° ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Π° ΠΊΠ°ΠΊΠΎ ΡΠ΅ΡΡΠΎ Π³Π΅ΡΠΌΠ΅Ρ. Π‘Π΅ΠΏΠ°ΠΊ, ΠΌΠΈΡΠ»Π°ΠΌ Π΄Π΅ΠΊΠ° ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³Ρ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ ΡΡΠΎ ΠΌΠΎΠΆΠ°ΠΌ Π΄Π° Π³ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°ΠΌ, ΠΊΠ°ΠΊΠΎ ΡΡΠΎ Π΅ Π΄Π° ΡΠ° Π½Π°ΠΏΡΠ°Π²Π°ΠΌ ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΠΏΠΎΡΠΈΠ³ΡΡΠ½Π° ΠΈ ΠΏΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½Π°, Π΄Π° ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π°ΠΌ ΠΏΠΎΠΊΠ²Π°Π»ΠΈΡΠ΅ΡΠ½Π° Π³ΡΠ°ΡΠΈΠΊΠ° Π½Π° ΠΈΠ³ΡΠ°ΡΠ° ΠΈΠ»ΠΈ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ Π·Π° ΡΠΏΠΎΠ΄Π΅Π»ΡΠ²Π°ΡΠ΅ ΠΈΠ³ΡΠΈ ΠΌΠ΅ΡΡ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅. ΠΠ°ΠΏΠΎΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΠΌ Π½Π° ΠΎΠ²Π°. ΠΠ΅ ΠΌΠΎΠ»ΠΈΠΌΠ΅ ΡΠ»Π΅Π΄Π΅ΡΠ΅
ΠΏΡΠΎΠ΅ΠΊΡ ΠΈ ΠΏΠΎΠ΄Π΄ΡΠΆΠ΅ΡΠ΅ Π³ΠΎ Π°ΠΊΠΎ Π²ΠΈ ΡΠ΅ Π΄ΠΎΠΏΠ°ΡΠ°.
ΠΠ·Π²ΠΎΡ: www.habr.com