Π‘ΠΎΡΡΡΠ΅Ρ ΠΊΠ°ΡΠΎ ΡΡΠ»ΡΠ³Π°, ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΡΠΎ ΡΡΠ»ΡΠ³Π°, ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΊΠ°ΡΠΎ ΡΡΠ»ΡΠ³Π°, ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΊΠ°ΡΠΎ ΡΡΠ»ΡΠ³Π°, Π²ΠΈΠ΄Π΅ΠΎΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΡ ΠΊΠ°ΡΠΎ ΡΡΠ»ΡΠ³Π° ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΠΊΠ°ΠΆΠ΅ΡΠ΅ Π·Π° ΠΎΠ±Π»Π°ΡΠ½ΠΈΡΠ΅ ΠΈΠ³ΡΠΈ ΠΊΠ°ΡΠΎ ΡΡΠ»ΡΠ³Π°? ΠΠ΅ΡΠ΅ ΠΈΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΎΠΏΠΈΡΠ° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΎΠ±Π»Π°ΡΠ½ΠΈ ΠΈΠ³ΡΠΈ (Cloud Gaming), ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Stadia, Π½Π°ΡΠΊΠΎΡΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π° ΠΎΡ Google. Π‘ΡΠ°Π΄ΠΈΠΈ
Thanh Nguyen ΡΠ΅ΡΠΈ Π΄Π° ΡΠ΅ΡΡΠ²Π° ΡΠ°Π·ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π² ΡΠ²ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ CloudRetro. CloudRetro Π΅ Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° Pion,
ΠΠ»ΠΈΠ·Π°Π½Π΅
ΠΠΈΠ½Π°Π»Π°ΡΠ° Π³ΠΎΠ΄ΠΈΠ½Π°, ΠΊΠΎΠ³Π°ΡΠΎ Google ΠΎΠ±ΡΠ²ΠΈ Stadia, Π±ΡΡ
ΠΏΠΎΡΠ°Π·Π΅Π½. ΠΠ΄Π΅ΡΡΠ° Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΡΠ½ΠΈΠΊΠ°Π»Π½Π° ΠΈ Π½ΠΎΠ²Π°ΡΠΎΡΡΠΊΠ°, ΡΠ΅ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ΅ ΡΡΠ΄Π΅Ρ
ΠΊΠ°ΠΊ ΡΠΎΠ²Π° ΠΈΠ·ΠΎΠ±ΡΠΎ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡΠ΅ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ. ΠΠ΅Π»Π°Π½ΠΈΠ΅ΡΠΎ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ° ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ ΡΠ°Π·ΠΈ ΡΠ΅ΠΌΠ° ΠΌΠ΅ ΠΏΠΎΠ΄ΡΠΈΠΊΠ½Π° Π΄Π° ΡΡΠ·Π΄Π°ΠΌ ΠΌΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΎΠ±Π»Π°ΡΠ½Π° ΠΈΠ³ΡΠ° Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄. Π Π΅Π·ΡΠ»ΡΠ°ΡΡΡ Π±Π΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΡΠ°Π½ΡΠ°ΡΡΠΈΡΠ΅Π½. ΠΠΎ-Π΄ΠΎΠ»Ρ Π±ΠΈΡ
ΠΈΡΠΊΠ°Π» Π΄Π° ΡΠΏΠΎΠ΄Π΅Π»Ρ ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ° Π²ΡΡΡ
Ρ ΠΌΠΎΡ Π³ΠΎΠ΄ΠΈΡΠ΅Π½
TLDR: Π²Π΅ΡΡΠΈΡ Ρ ΠΊΡΠ°ΡΡΠΊ ΡΠ»Π°ΠΉΠ΄ Ρ Π°ΠΊΡΠ΅Π½ΡΠΈ
ΠΠ°ΡΠΎ ΠΎΠ±Π»Π°ΡΠ½ΠΈΡΠ΅ ΠΈΠ³ΡΠΈ ΡΠ° Π±ΡΠ΄Π΅ΡΠ΅ΡΠΎ
ΠΡΡΠ²Π°ΠΌ, ΡΠ΅ Cloud Gaming ΡΠΊΠΎΡΠΎ ΡΠ΅ ΡΠ΅ ΠΏΡΠ΅Π²ΡΡΠ½Π΅ Π² Π½ΠΎΠ²ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ Π½Π΅ ΡΠ°ΠΌΠΎ ΠΈΠ³ΡΠΈ, Π½ΠΎ ΠΈ Π΄ΡΡΠ³ΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΡΠ½ΠΈΡΠ΅ Π½Π°ΡΠΊΠΈ. ΠΠ±Π»Π°ΡΠ½ΠΈΡΠ΅ ΠΈΠ³ΡΠΈ ΡΠ° Π²ΡΡΡ ΡΡ Π½Π° ΠΌΠΎΠ΄Π΅Π»Π° ΠΊΠ»ΠΈΠ΅Π½Ρ/ΡΡΡΠ²ΡΡ. Π’ΠΎΠ·ΠΈ ΠΌΠΎΠ΄Π΅Π» ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π·Π°Π΄Π½ΠΈΡ ΠΊΡΠ°ΠΉ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠ° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΡΡΠ΅Π· Ρ ΠΎΡΡΠ²Π°Π½Π΅ Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π½Π° ΠΈΠ³ΡΠ°ΡΠ° Π½Π° ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ ΡΡΡΠ²ΡΡ ΠΈ ΠΏΠΎΡΠΎΡΠ½ΠΎ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ/Π°ΡΠ΄ΠΈΠΎ ΠΊΡΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. Π‘ΡΡΠ²ΡΡΡΡ ΠΈΠ·Π²ΡΡΡΠ²Π° ΡΠ΅ΠΆΠΊΠ°ΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡΡ Π²Π΅ΡΠ΅ Π½Π΅ Π΅ ΠΎΠ±Π΅ΠΊΡ Π½Π° Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ.
Google Stadia Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΈΠ³ΡΠ°Π΅ΡΠ΅
ΠΡΠ΄Π΅ΡΠ΅ΡΠΎ Π½Π° ΡΠ°Π·ΠΈ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡ: ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅ΡΠ΅ ΡΠΈ, Π°ΠΊΠΎ Microsoft Windows 10 ΡΠ°Π±ΠΎΡΠΈ Π² Π±ΡΠ°ΡΠ·ΡΡΠ° Chrome?
ΠΠ±Π»Π°ΡΠ½ΠΈΡΠ΅ ΠΈΠ³ΡΠΈ ΡΠ° ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΡΡΡΠ΄Π½ΠΈ
ΠΠ³ΡΠΈΡΠ΅ ΡΠ° Π΅Π΄Π½Π° ΠΎΡ ΠΎΠ½Π΅Π·ΠΈ ΡΠ΅Π΄ΠΊΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΏΠΎΡΡΠΎΡΠ½Π½Π° Π±ΡΡΠ·Π° ΡΠ΅Π°ΠΊΡΠΈΡ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ. ΠΠΊΠΎ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ ΡΡΠ΅ΡΠ½Π΅ΠΌ Π·Π°Π±Π°Π²ΡΠ½Π΅ ΠΎΡ 2 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ ΠΏΡΠΈ ΠΊΠ»ΠΈΠΊΠ²Π°Π½Π΅ Π²ΡΡΡ Ρ ΡΡΡΠ°Π½ΠΈΡΠ°, ΡΠΎΠ²Π° Π΅ ΠΏΡΠΈΠ΅ΠΌΠ»ΠΈΠ²ΠΎ. ΠΠΈΠ΄Π΅ΠΎ ΠΏΠΎΡΠΎΡΠΈΡΠ΅ Π½Π° ΠΆΠΈΠ²ΠΎ ΡΠ° ΡΠΊΠ»ΠΎΠ½Π½ΠΈ Π΄Π° ΠΈΠ·ΠΎΡΡΠ°Π²Π°Ρ Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅ΠΊΡΠ½Π΄ΠΈ, Π½ΠΎ Π²ΡΠ΅ ΠΏΠ°ΠΊ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ Π΄ΠΎΡΡΠ° Π³ΠΎΠ»ΡΠΌΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π΅ΠΌΠΎΡΡ. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, Π°ΠΊΠΎ ΠΈΠ³ΡΠ°ΡΠ° ΡΠ΅ΡΡΠΎ ΡΠ΅ Π·Π°Π±Π°Π²Ρ Ρ 500ms, ΠΏΡΠΎΡΡΠΎ Π½Π΅ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΈΠ³ΡΠ°Π΅. ΠΠ°ΡΠ°ΡΠ° ΡΠ΅Π» Π΅ Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π΅ΠΌ ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π½ΠΈΡΠΊΠ° Π»Π°ΡΠ΅Π½ΡΠ½ΠΎΡΡ, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ°Π·Π»ΠΈΠΊΠ°ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π²Ρ ΠΎΠ΄Π° ΠΈ ΠΌΠ΅Π΄ΠΈΡΡΠ° Π΄Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉ-ΠΌΠ°Π»ΠΊΠ°. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΈΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π·Π° ΠΏΠΎΡΠΎΡΠ½ΠΎ Π²ΠΈΠ΄Π΅ΠΎ Π½Π΅ Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠΈΠΌ ΡΡΠΊ.
ΠΠ±Ρ ΡΠ°Π±Π»ΠΎΠ½ Π·Π° ΠΎΠ±Π»Π°ΡΠ½Π° ΠΈΠ³ΡΠ°
ΠΡΠΎΠ΅ΠΊΡ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ CloudRetro
Π Π΅ΡΠΈΡ Π΄Π° ΡΡΠ·Π΄Π°ΠΌ ΡΠ΅ΡΡΠΎΠ²Π° ΠΏΡΠΎΠ±Π° Π½Π° ΠΎΠ±Π»Π°ΡΠ½Π° ΠΈΠ³ΡΠ°, Π·Π° Π΄Π° Π²ΠΈΠ΄Ρ Π΄Π°Π»ΠΈ Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΡΡΡΠΎΠ³ΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ. ΠΠ·Π±ΡΠ°Ρ Golang Π·Π° Π΄ΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΡΡΠ²ΠΎ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡΠ°, Π·Π°ΡΠΎΡΠΎ ΡΠΎΠ²Π° Π΅ Π΅Π·ΠΈΠΊΡΡ, Ρ ΠΊΠΎΠΉΡΠΎ ΡΡΠΌ Π½Π°ΠΉ-Π·Π°ΠΏΠΎΠ·Π½Π°Ρ ΠΈ Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π·Π° ΡΠ°Π·ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΡΠ°Π΄ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ ΠΏΡΠΈΡΠΈΠ½ΠΈ, ΠΊΠ°ΠΊΡΠΎ ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ ΡΠ°Π·Π±ΡΠ°Ρ . Go Π΅ ΠΏΡΠΎΡΡΠ° ΠΈ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ·ΠΎ; ΠΠ°Π½Π°Π»ΠΈΡΠ΅ Π² Go ΡΠ° ΡΡΠ΄Π΅ΡΠ½ΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡ.
ΠΡΠΎΠ΅ΠΊΡ
ΠΠΎΠ²Π΅ΡΠ΅ Π·Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΡΡΠΈΡΠ΅ ΡΡΠΊ:
CloudRetro ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ
CloudRetro ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ΅ΡΡΠΎ ΠΈΠ³ΡΠΈ, Π·Π° Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅ ΡΠΈΠ»Π°ΡΠ° Π½Π° ΠΎΠ±Π»Π°ΡΠ½ΠΈΡΠ΅ ΠΈΠ³ΡΠΈ. Π’ΠΎΠ²Π° Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ½ΠΈΠΊΠ°Π»Π½ΠΈ ΠΈΠ³ΡΠΎΠ²ΠΈ ΠΈΠ·ΠΆΠΈΠ²ΡΠ²Π°Π½ΠΈΡ.
- ΠΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡ Π½Π° ΠΈΠ³ΡΠ°ΡΠ°
- ΠΠ΅Π·Π°Π±Π°Π²Π½ΠΎ Π²ΡΠ·ΠΏΡΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ ΠΏΡΠΈ ΠΎΡΠ²Π°ΡΡΠ½Π΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°; Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ ΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅
- Π Π°Π±ΠΎΡΠΈ Π½Π° ΠΌΠΎΠ±ΠΈΠ»Π΅Π½ Π±ΡΠ°ΡΠ·ΡΡ, ΡΠ°ΠΊΠ° ΡΠ΅ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ ΡΠΎΡΡΡΠ΅Ρ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅
- ΠΠ³ΡΠΎΠ²ΠΈΡΠ΅ ΡΠ΅ΡΠΈΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΠΏΠΎΠ΄Π΅Π»ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈ Π΄Π° ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Π² ΠΎΠ±Π»Π°ΠΊΠ° Π·Π° ΡΠ»Π΅Π΄Π²Π°ΡΠΎ Π²Π»ΠΈΠ·Π°Π½Π΅
- ΠΠ³ΡΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π΄Π°Π²Π° ΠΏΠΎΡΠΎΡΠ½ΠΎ ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Ρ ΠΈΠ³ΡΠ°Π΅ΡΠ΅ Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Π½Π°Π²Π΅Π΄Π½ΡΠΆ:
- Crowdplay ΠΊΠ°ΡΠΎ TwitchPlayPokemon, ΡΠ°ΠΌΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΌΠ΅ΠΆΠ΄ΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½ΠΈ ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅
- ΠΡΠ»Π°ΠΉΠ½ ΠΈΠ³ΡΠΈ ΠΎΠ½Π»Π°ΠΉΠ½. ΠΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠ³ΡΠ°ΡΡ Π±Π΅Π· Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° ΠΌΡΠ΅ΠΆΠ°ΡΠ°. Samurai Shodown Π²Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ³ΡΠ°Π΅ Ρ 2 ΠΈΠ³ΡΠ°ΡΠΈ ΠΏΡΠ΅Π· ΠΌΡΠ΅ΠΆΠ°ΡΠ° CloudRetro
ΠΠ΅ΠΌΠΎ Π²Π΅ΡΡΠΈΡ Π½Π° ΠΎΠ½Π»Π°ΠΉΠ½ ΠΌΡΠ»ΡΠΈΠΏΠ»Π΅ΠΉΡΡ ΠΈΠ³ΡΠ° Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°
ΠΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅Π½ ΡΡΠ΅ΠΊ
ΠΠΎ-Π΄ΠΎΠ»Ρ Π΅ Π΄Π°Π΄Π΅Π½ ΡΠΏΠΈΡΡΠΊ Ρ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΡ , ΠΏΡΠ΅Π΄ΠΈ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°.
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.
Π‘ΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΠΈΠ³ΡΠ°ΡΠ°: ΡΠ΅Π½ΡΡΠ°Π»Π½ΠΎ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΡΡΡΡΠΎΡΠ½ΠΈΡ Π½Π° ΠΈΠ³ΡΠ°ΡΠ°. Π’ΠΎΠ²Π° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π²Π°ΠΆΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠ°ΡΠΎ Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅/Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΎΡ Π½Π°ΠΉ-Π²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ Π½Π° CloudRetroΠΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΡΠΊΡΠΈΠΏΡ
ΠΠΎΠ³Π°ΡΠΎ Π½ΠΎΠ² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» ΠΎΡΠ²ΠΎΡΠΈ CloudRetro Π² ΡΡΡΠΏΠΊΠΈ 1 ΠΈ 2, ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈ Π½Π° ΡΠΈΠ³ΡΡΠ°ΡΠ° ΠΏΠΎ-Π΄ΠΎΠ»Ρ, ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡΡΡ, Π·Π°Π΅Π΄Π½ΠΎ ΡΡΡ ΡΠΏΠΈΡΡΠΊ Ρ Π½Π°Π»ΠΈΡΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ½ΠΈΡΠΈ, ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° Π½Π° ΠΏΡΡΠ²Π°ΡΠ° ΡΡΡΠ°Π½ΠΈΡΠ°. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π°, Π² ΡΡΡΠΏΠΊΠ° 3, ΠΊΠ»ΠΈΠ΅Π½ΡΡΡ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π° Π·Π°ΠΊΡΡΠ½Π΅Π½ΠΈΡΡΠ° Π·Π° Π²ΡΠΈΡΠΊΠΈ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ HTTP ping Π·Π°ΡΠ²ΠΊΠ°. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠΎΠ·ΠΈ ΡΠΏΠΈΡΡΠΊ ΡΡΡ Π·Π°ΠΊΡΡΠ½Π΅Π½ΠΈΡ ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ° ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π½Π° ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡΠ°, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ ΡΠΎΠΉ Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈ Π½Π°ΠΉ-ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΡ ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊ, ΠΊΠΎΠΉΡΠΎ Π΄Π° ΠΎΠ±ΡΠ»ΡΠΆΠ²Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ. Π‘ΡΡΠΏΠΊΠ° 4 ΠΏΠΎ-Π΄ΠΎΠ»Ρ ΡΡΠ·Π΄Π°Π²Π° ΠΈΠ³ΡΠ°. Π£ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π° ΡΠ΅ WebRTC ΡΡΡΠΈΠΉΠΌΠΈΠ½Π³ Π²ΡΡΠ·ΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ ΠΈ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊ.
ΠΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΡΠΊΡΠΈΠΏΡ ΡΠ»Π΅Π΄ ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° Π΄ΠΎΡΡΡΠΏΠΠ°ΠΊΠ²ΠΎ ΠΈΠΌΠ° Π²ΡΡΡΠ΅ Π² ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΠ°
Π’ΡΡΠ±ΠΎΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅ Π·Π° ΠΈΠ³ΡΠΈ ΠΈ ΡΡΡΠΈΠΉΠΌΠΈΠ½Π³ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΎ Π²ΡΡΡΠ΅ Π² ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΠ° ΠΈ ΠΎΠ±ΠΌΠ΅Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΡΠ°ΠΌ ΡΡΠ΅Π· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ°Π·ΠΈ ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡ ΡΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° ΡΡΠ΅Π· ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΡΠ½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°
ΠΠΎΠ»Π°Π½Π³ ΠΊΠ°Π½Π°Π»ΠΈ Π² ΡΡΡΠΈΡ ΠΏΡΠΎΡΠ΅Ρ. Π‘Π»Π΅Π΄Π²Π°ΡΠ°ΡΠ° ΡΠ΅Π» Π΅ ΡΠ΅Π³ΡΠ΅Π³Π°ΡΠΈΡΡΠ°, Ρ.Π΅. ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»Π½ΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ³ΡΠ°ΡΠ° Π² Π΄ΡΡΠ³ ΠΏΡΠΎΡΠ΅Ρ.
ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΠΠ»Π°Π²Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ:
- 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, ΡΠ΅ ΠΏΡΠ΅Π΄Π°Π²Π°Ρ ΡΠ°ΠΌΠΎ Π΄ΠΈΡΠ΅ΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΈ ΡΠΎΡΠΊΠΈ.
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π½Π° Π²ΠΈΠ΄Π΅ΠΎ ΠΊΠ°Π΄ΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° 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
Π Π°Π±ΠΎΡΠ½ΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π² GoGo 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. Π‘Π»Π΅Π΄Π²Π°ΠΉΠΊΠΈ ΡΠΎΠ·ΠΈ ΠΌΠΎΠ΄Π΅Π», Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ Π²Ρ ΠΎΠ΄ΠΎΠ²Π΅ Π² Π΅Π΄Π½Π° ΠΈ ΡΡΡΠ° ΡΡΠ°Ρ ΡΠ° Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ Π² ΡΠ΅Π½ΡΡΠ°Π»Π½ΠΈΡ Π²Ρ ΠΎΠ΄Π΅Π½ ΠΊΠ°Π½Π°Π». Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΌΠ΅Π΄ΠΈΡΡΠ° Π½Π° ΠΈΠ³ΡΠ°ΡΠ° ΡΠ΅ ΡΠ°Π·Π³ΡΡΡΠ° Π·Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Π² Π΅Π΄Π½Π° ΠΈ ΡΡΡΠ° ΡΡΠ°Ρ. ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΠΏΠΎΡΡΠΈΠ³Π°ΠΌΠ΅ ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΠΈΠ³ΡΠ°ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΈΠ³ΡΠΎΠ²ΠΈ ΡΠ΅ΡΠΈΠΈ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ.
Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ΅ΡΠΈΠΈΠΠ΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈ Π½Π° 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