ΠΠ ΠΊΠ°ΠΊ ΡΡΠ»ΡΠ³Π°, ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΠΊ ΡΡΠ»ΡΠ³Π°, ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΊΠ°ΠΊ ΡΡΠ»ΡΠ³Π°, ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΊΠ°ΠΊ ΡΡΠ»ΡΠ³Π°, Π²ΠΈΠ΄Π΅ΠΎΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ ΠΊΠ°ΠΊ ΡΡΠ»ΡΠ³Π°, Π° ΡΡΠΎ Π½Π°ΡΡΠ΅Ρ ΠΎΠ±Π»Π°ΡΠ½ΡΡ
ΠΈΠ³Ρ ΠΊΠ°ΠΊ ΡΡΠ»ΡΠ³ΠΈ? Π£ΠΆΠ΅ Π±ΡΠ»ΠΎ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΡΡΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠΏΡΡΠΎΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±Π»Π°ΡΠ½ΡΡ
ΠΈΠ³Ρ (Cloud Gaming), Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Stadia, Π½Π΅Π΄Π°Π²Π½ΠΎ Π·Π°ΠΏΡΡΠ΅Π½Π½Π°Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Google. Stadia
Π’Ρ
Π°Π½Ρ ΠΠ³ΡΠ΅Π½ (Thanh Nguyen) ΡΠ΅ΡΠΈΠ» ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π° ΡΠ²ΠΎΠ΅ΠΌ ΠΎΠΏΠ΅Π½ΡΠΎΡΡΠ½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ CloudRetro. CloudRetro ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° Pion,
ΠΡΡΡΠΏΠ»Π΅Π½ΠΈΠ΅
Π ΠΏΡΠΎΡΠ»ΠΎΠΌ Π³ΠΎΠ΄Ρ, ΠΊΠΎΠ³Π΄Π° Google Π°Π½ΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π» Stadia, ΠΌΠ½Π΅ ΠΏΡΠΎΡΡΠΎ ΡΠ½Π΅ΡΠ»ΠΎ ΠΊΡΡΡΡ. ΠΠ΄Π΅Ρ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½Π° ΠΈ ΠΈΠ½Π½ΠΎΠ²Π°ΡΠΈΠΎΠ½Π½Π°, ΡΡΠΎ Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π·Π°Π΄Π°Π²Π°Π»ΡΡ Π²ΠΎΠΏΡΠΎΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ°ΠΊΠΎΠ΅ Π²ΠΎΠΎΠ±ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ
ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡ
. ΠΠ΅Π»Π°Π½ΠΈΠ΅ Π»ΡΡΡΠ΅ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΡΡΠΎΠΉ ΡΠ΅ΠΌΠ΅ ΠΏΠΎΠ±ΡΠ΄ΠΈΠ»ΠΎ ΠΌΠ΅Π½Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΡ Π²Π΅ΡΡΠΈΡ ΠΎΠΏΠ΅Π½ΡΠΎΡΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΠ½ΠΎΠΉ ΠΈΠ³ΡΡ. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π±ΡΠ» ΠΏΡΠΎΡΡΠΎ ΡΠ°Π½ΡΠ°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ. ΠΠΈΠΆΠ΅ Ρ Ρ
ΠΎΡΠ΅Π» Π±Ρ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΠΌΠΎΠΈΠΌ Π³ΠΎΠ΄ΠΈΡΠ½ΡΠΌ
TLDR: ΠΊΠΎΡΠΎΡΠΊΠ°Ρ ΡΠ»Π°ΠΉΠ΄-Π²Π΅ΡΡΠΈΡ Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΠΌΠΎΠΌΠ΅Π½ΡΠ°ΠΌΠΈ
ΠΠΎΡΠ΅ΠΌΡ Π·Π° ΠΎΠ±Π»Π°ΡΠ½ΡΠΌΠΈ ΠΈΠ³ΡΠ°ΠΌΠΈ Π±ΡΠ΄ΡΡΠ΅Π΅
Π― Π²Π΅ΡΡ, ΡΡΠΎ Cloud Gaming ΡΠΊΠΎΡΠΎ ΡΡΠ°Π½Π΅Ρ Π½ΠΎΠ²ΡΠΌ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ΠΌ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ³Ρ, Π½ΠΎ ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΠΈ. ΠΠ±Π»Π°ΡΠ½ΡΠ΅ ΠΈΠ³ΡΡ β ΡΡΠΎ Π²Π΅ΡΡΠΈΠ½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ/ΡΠ΅ΡΠ²Π΅Ρ. Π’Π°ΠΊΠ°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π±ΡΠΊΡΠ½Π΄ΠΎΠΌ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΠ°Π±ΠΎΡΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π° Π·Π° ΡΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΈΠ³ΡΠΎΠ²ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ/Π°ΡΠ΄ΠΈΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡ. Π‘Π΅ΡΠ²Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡΠΆΠ΅Π»ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΊΠ»ΠΈΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ.
Google Stadia, ΠΏΠΎ ΡΡΡΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ³ΡΠ°ΡΡ Π²
ΠΡΠ΄ΡΡΠ΅Π΅ ΡΡΠΎΠΉ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ: ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΠ΅, Π΅ΡΠ»ΠΈ Π±Ρ Microsoft Windows 10 ΡΠ°Π±ΠΎΡΠ°Π» Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ Chrome?
ΠΠ±Π»Π°ΡΠ½ΡΠ΅ ΠΈΠ³ΡΡ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ»ΠΎΠΆΠ½Ρ
ΠΠ΅ΠΉΠΌΠΈΠ½Π³ β ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ΅Ρ ΡΠ΅Π΄ΠΊΠΈΡ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ, Π³Π΄Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½Π°Ρ Π±ΡΡΡΡΠ°Ρ ΡΠ΅Π°ΠΊΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΡΠ»ΠΈ ΠΈΠ·ΡΠ΅Π΄ΠΊΠ° ΠΌΡ Π²ΡΡΡΠ΅ΡΠ°Π΅ΠΌΡΡ Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΠΎΠΉ Π² 2 ΡΠ΅ΠΊΡΠ½Π΄Ρ ΠΏΡΠΈ ΠΊΠ»ΠΈΠΊΠ΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅, ΡΡΠΎ ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎ. ΠΠΈΠ΄Π΅ΠΎΠΏΠΎΡΠΎΠΊΠΈ Π² ΠΏΡΡΠΌΠΎΠΌ ΡΡΠΈΡΠ΅, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΎΡΡΡΠ°ΡΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΊΡΠ½Π΄, Π½ΠΎ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠ΅ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ ΠΈΠ³ΡΠ° ΡΠ°ΡΡΠΎ Π·Π°Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π½Π° 500 ΠΌΡ, ΠΈΠ³ΡΠ°ΡΡ ΠΏΡΠΎΡΡΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠΠ°ΡΠ° ΡΠ΅Π»Ρ β Π΄ΠΎΡΡΠΈΡΡ ΡΡΠ΅Π·Π²ΡΡΠ°ΠΉΠ½ΠΎ Π½ΠΈΠ·ΠΊΠΎΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ, ΡΡΠΎΠ±Ρ ΡΠ°Π·ΡΡΠ² ΠΌΠ΅ΠΆΠ΄Ρ Π²Π²ΠΎΠ΄ΠΎΠΌ ΠΈ ΠΌΠ΅Π΄ΠΈΠ° Π±ΡΠ» ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡΠ΅. ΠΠΎΡΡΠΎΠΌΡ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠΌΡ Π²ΠΈΠ΄Π΅ΠΎ Π·Π΄Π΅ΡΡ Π½Π΅ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ.
ΠΠ±ΡΠΈΠΉ ΡΠ°Π±Π»ΠΎΠ½ ΠΎΠ±Π»Π°ΡΠ½ΠΎΠΉ ΠΈΠ³ΡΡ
ΠΠΏΠ΅Π½ΡΠΎΡΡΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ CloudRetro
Π― ΡΠ΅ΡΠΈΠ» ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΡΡΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π·Π΅Ρ ΠΎΠ±Π»Π°ΡΠ½ΠΎΠΉ ΠΈΠ³ΡΡ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ Π²ΡΡ ΡΡΠΎ ΠΏΡΠΈ ΡΠ°ΠΊΠΈΡ ΠΆΠ΅ΡΡΠΊΠΈΡ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΡ . ΠΠ»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ Ρ Π²ΡΠ±ΡΠ°Π» Golang, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π½Π°ΠΊΠΎΠΌΡΠΉ ΠΌΠ½Π΅ ΡΠ·ΡΠΊ ΠΈ Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ, ΠΊΠ°ΠΊ Π²ΡΡΡΠ½ΠΈΠ»ΠΎΡΡ ΠΏΠΎΠ·ΠΆΠ΅. Go ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ ΠΎΡΠ΅Π½Ρ Π±ΡΡΡΡΠΎ; ΠΊΠ°Π½Π°Π»Ρ Π² Go ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡΡ.
ΠΡΠΎΠ΅ΠΊΡ
ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π·Π΄Π΅ΡΡ:
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ CloudRetro
ΠΠ»Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ Π²ΡΠ΅ΠΉ ΠΌΠΎΡΠΈ ΠΎΠ±Π»Π°ΡΠ½ΡΡ ΠΈΠ³Ρ Π² CloudRetro ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ΅ΡΡΠΎ-ΠΈΠ³ΡΡ. Π§ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠ³ΡΠΎΠ²ΡΡ Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΠΉ.
- ΠΠΎΡΡΠ°ΡΠΈΠ²Π½ΠΎΡΡΡ ΠΈΠ³ΡΡ
- ΠΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ΅ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΎΡΠΊΡΡΡΠΈΠΈ ΡΡΡΠ°Π½ΠΈΡΡ; Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π½Π΅ Π½ΡΠΆΠ½Ρ
- Π Π°Π±ΠΎΡΠ°Π΅Ρ Π² ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, ΡΠ°ΠΊ ΡΡΠΎ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅
- ΠΠ³ΡΠΎΠ²ΡΠ΅ ΡΠ΅Π°Π½ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ ΠΈ Ρ ΡΠ°Π½ΠΈΡΡ Π² ΠΎΠ±Π»Π°ΠΊΠ΅ Π΄Π»Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ Π²Ρ ΠΎΠ΄Π°
- ΠΠ³ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠΈΠΌΠΈΡΡ, Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ³ΡΠ°ΡΡ Π² Π½Π΅Π΅ ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ:
- Crowdplay ΡΠΈΠΏΠ° TwitchPlayPokemon, ΡΠΎΠ»ΡΠΊΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΊΡΠΎΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠΉ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΠ°Π»ΡΠ°ΠΉΠΌΠΎΠ²ΡΠΉ
- ΠΡΡΠ»Π°ΠΈΜΠ½ ΠΈΠ³ΡΡ Π² ΠΎΠ½Π»Π°ΠΈΜΠ½Π΅. ΠΠ³ΡΠ°ΡΡ ΠΌΠΎΠ³ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΈΜ Π±Π΅Π· Π½Π°ΡΡΡΠΎΠΈΜΠΊΠΈ ΡΠ΅ΡΠΈ. Π Samurai Shodown ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ³ΡΠ°ΡΡ 2 ΠΈΠ³ΡΠΎΠΊΠ°ΠΌ ΠΏΠΎ ΡΠ΅ΡΠΈ CloudRetro
ΠΠ΅ΠΌΠΎ-Π²Π΅ΡΡΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΈΠ³ΡΡ Π½Π° ΡΠ°Π·Π½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΡΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΡΠ΅ΠΊ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΡΠΏΠΈΡΠΎΠΊ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ» ΠΏΠ΅ΡΠ΅Π΄ Π½Π°ΡΠ°Π»ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
1. ΠΠ΄ΠΈΠ½ ΠΈΠ³ΡΠΎΠΊ
ΠΡΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π²Π°ΠΆΠ½ΡΠΌ ΠΈ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠΌ Π·Π΄Π΅ΡΡ, Π½ΠΎ ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΌΠΎΠΈΡ ΠΊΠ»ΡΡΠ΅Π²ΡΡ Π²ΡΠ²ΠΎΠ΄ΠΎΠ², ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±Π»Π°ΡΠ½ΡΠΌ ΠΈΠ³ΡΠ°ΠΌ Π΄Π΅ΡΠΆΠ°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°Π»ΡΡΠ΅ ΠΎΡ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ². ΠΡΠ»ΠΈ ΠΌΡ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΠΌΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΠΈΠ³ΡΠ΅, ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈΠ»ΠΈ CDN, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π² ΠΌΠ°ΡΡΡ. ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΏΠΎΡΠΎΠΊΠΈ Π½Π° ΠΏΠΎΠ³Π»ΠΎΡΠ°ΡΡΠΈΠΉ ΡΠ΅ΡΠ²Π΅Ρ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ Π½Π° ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ WebSocket, ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°ΠΏΡΡΠΌΡΡ ΡΠ΅ΡΠ΅Π· ΠΎΠ΄Π½ΠΎΡΠ°Π½Π³ΠΎΠ²ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ WebRTC.2. ΠΠ΅Π΄ΠΈΠ°ΠΏΠΎΡΠΎΠΊ Ρ Π½ΠΈΠ·ΠΊΠΎΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΎΠΉ
Π§ΠΈΡΠ°Ρ ΠΏΡΠΎ Stadia, Ρ ΡΠ°ΡΡΠΎ Π²ΡΡΡΠ΅ΡΠ°Ρ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ°ΡΡΡΡ ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ WebRTC. Π― ΠΏΠΎΠ½ΡΠ», ΡΡΠΎ WebRTC β Π²ΡΠ΄Π°ΡΡΠ°ΡΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ, ΠΈ ΠΎΠ½Π° ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΎΠ±Π»Π°ΡΠ½ΡΡ ΠΈΠ³ΡΠ°Ρ . WebRTC β ΡΡΠΎ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΠ°ΠΌ ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ ΡΠ²ΡΠ·Ρ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΡΡΠΎΠΉ API. ΠΠ½ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΎΠ΄Π½ΠΎΡΠ°Π½Π³ΠΎΠ²ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ Π΄Π»Ρ ΠΌΠ΅Π΄ΠΈΠ° ΠΈ ΠΈΠΌΠ΅Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΊΠΎΠ΄Π΅ΠΊΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ VP8 ΠΈ H264.Π― ΠΎΡΠ΄Π°Π» ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΊΠΎΠΌΡΠΎΡΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, Π° Π½Π΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° Π³ΡΠ°ΡΠΈΠΊΠΈ. Π Π°Π»Π³ΠΎΡΠΈΡΠΌΠ΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΠ΅ΡΠΈ. Π Google Stadia Π΅ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ°Π³ ΠΏΠΎ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΠΈ ΠΊΠ°Π΄ΡΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΡΡΡΡ Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ΠΉ ΠΎΠ΄Π½ΠΎΡΠ°Π½Π³ΠΎΠ²ΡΠΌ ΡΠ·Π»Π°ΠΌ.
3. Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° Ρ Π³Π΅ΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠ΅ΠΉ
ΠΠ½Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠΆΠ°ΡΠΈΡ ΠΈ ΠΊΠΎΠ΄, ΡΠ΅ΡΡ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ°ΡΡΠΈΠΌ ΡΠ°ΠΊΡΠΎΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠΏΠΎΡΠΎΠ±ΡΡΠ²ΡΠ΅Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΠ΅. ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠΎΠΏΡΡΠΆΠ΅Π½ΠΈΡ Π±Π»ΠΈΠΆΠ°ΠΉΡΠ΅Π³ΠΎ ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° Π΄Π»Ρ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΡΠΈΠ΅ΠΌΠ°-ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ (RTT). ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅ΡΡ 1 ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡΠ° ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΠΈΡΡ: ΠΠ°ΠΏΠ°Π΄ Π‘Π¨Π, ΠΠΎΡΡΠΎΠΊ Π‘Π¨Π, ΠΠ²ΡΠΎΠΏΠ°, Π‘ΠΈΠ½Π³Π°ΠΏΡΡ, ΠΠΈΡΠ°ΠΉ. ΠΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Ρ. Π‘ΠΈΡΡΠ΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΡΡΡ ΠΊ ΡΠ΅ΡΠΈ ΠΈΠ»ΠΈ Π²ΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ· Π½Π΅Π΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΡΠΈ Π±ΠΎΠ»ΡΡΠΎΠΌ ΡΡΠ°ΡΠΈΠΊΠ΅, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.4. ΠΡΠ°ΡΠ·Π΅ΡΠ½Π°Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ
ΠΠ±Π»Π°ΡΠ½ΡΠ΅ ΠΈΠ³ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°ΡΡ Π² Π½Π°ΠΈΠ»ΡΡΡΠ΅ΠΌ ΡΠ²Π΅ΡΠ΅, ΠΊΠΎΠ³Π΄Π° ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΏΠΎ ΠΌΠΈΠ½ΠΈΠΌΡΠΌΡ. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°ΠΏΡΡΠΊΠ° Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅. ΠΡΠ°ΡΠ·Π΅ΡΡ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΠ³ΡΠΎΠ²ΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΊΠΎΠΌΡΠΎΡΡΠ½ΡΠΌ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΈΠ·Π±Π°Π²ΠΈΠ² ΠΈΡ ΠΎΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΈ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ. ΠΡΠ°ΡΠ·Π΅ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΊΡΠΎΡΡ-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΡΡΡ Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΈ Π΄Π΅ΡΠΊΡΠΎΠΏΠ½ΡΡ Π²Π΅ΡΡΠΈΠΉ. Π ΡΡΠ°ΡΡΡΡ, WebRTC ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ .5. Π§Π΅ΡΠΊΠΎΠ΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ°
Π― ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Ρ ΡΠ΅ΡΠ²ΠΈΡ ΠΎΠ±Π»Π°ΡΠ½ΡΡ ΠΈΠ³Ρ ΠΊΠ°ΠΊ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ ΠΊ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ ΡΡΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ. Π‘Π΅ΠΉΡΠ°Ρ Ρ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π»LibRetro Ρ ΡΠ΅ΡΠ²ΠΈΡΠΎΠΌ ΠΎΠ±Π»Π°ΡΠ½ΡΡ ΠΈΠ³Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ LibRetro ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΊΡΠ°ΡΠΈΠ²ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΌΡΠ»ΡΡΠΎΡΠ° Π΄Π»Ρ ΡΠ΅ΡΡΠΎ-ΠΈΠ³Ρ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ SNES, GBA, PS.6. ΠΠΎΠΌΠ½Π°ΡΡ Π΄Π»Ρ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π΅Π΅ΡΠ°, crowd play ΠΈ Π²Π½Π΅ΡΠ½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ (deep-link) Ρ ΠΈΠ³ΡΠΎΠΉ
CloudRetro ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π½ΠΎΠ²ΡΡ Π³Π΅ΠΉΠΌΠΏΠ»Π΅Π΅Π², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ CrowdPlay ΠΈ Online MultiPlayer Π΄Π»Ρ ΡΠ΅ΡΡΠΎ-ΠΈΠ³Ρ. ΠΡΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΎΡΠΊΡΠΎΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ deep-link Π½Π° ΡΠ°Π·Π½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Ρ , ΠΎΠ½ΠΈ ΡΠ²ΠΈΠ΄ΡΡ ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ ΠΈΠ³ΡΡ ΠΈ Π΄Π°ΠΆΠ΅ ΡΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡΡΡ ΠΊ Π½Π΅ΠΉ.ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈΠ³ΡΡ Ρ ΡΠ°Π½ΡΡΡΡ Π² ΠΎΠ±Π»Π°ΡΠ½ΠΎΠΌ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΠΈΠ³ΡΡ Π² Π»ΡΠ±ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π° Π»ΡΠ±ΠΎΠΌ Π΄ΡΡΠ³ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅.
7. ΠΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ°ΠΊ ΠΈ Π»ΡΠ±ΠΎΠΉ SAAS Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ, ΠΎΠ±Π»Π°ΡΠ½ΡΠ΅ ΠΈΠ³ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Ρ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π±ΡΡΡ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΠΌΠΈ. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ Β«ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡ-Π²ΠΎΡΠΊΠ΅ΡΒ» ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π²ΠΎΡΠΊΠ΅ΡΠΎΠ², ΡΡΠΎΠ±Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡ Π±ΠΎΠ»ΡΡΠΈΠΉ ΡΡΠ°ΡΠΈΠΊ.8. ΠΠ΅Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΎΠ±Π»Π°ΠΊΡ
ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° CloudRetro ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΎΠ±Π»Π°ΡΠ½ΡΡ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ°Ρ (Digital Ocean, Alibaba, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅Ρ) Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ΅Π³ΠΈΠΎΠ½ΠΎΠ². Π― Π°ΠΊΡΠΈΠ²ΠΈΡΡΡ Π·Π°ΠΏΡΡΠΊ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅ Docker Π΄Π»Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Ρ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ bash-ΡΠΊΡΠΈΠΏΡΠ°, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±Π»Π°ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ°. Π‘ΠΎΡΠ΅ΡΠ°Ρ ΡΡΠΎ Ρ NAT Traversal Π² WebRTC, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π³ΠΈΠ±ΠΊΠΎΡΡΡ Π΄Π»Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ CloudRetro Π½Π° Π»ΡΠ±ΠΎΠΉ ΠΎΠ±Π»Π°ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ ΠΈ Π΄Π°ΠΆΠ΅ Π½Π° ΠΌΠ°ΡΠΈΠ½Π°Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½
ΠΠΎΡΠΊΠ΅Ρ: (ΠΈΠ»ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ, ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠΉ Π²ΡΡΠ΅) ΠΌΠ½ΠΎΠΆΠΈΡ ΠΈΠ³ΡΡ, Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΊΠΎΠ΄ΠΈΡΡΡΡΠΈΠΉ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ. ΠΠ½ΡΡΠ°Π½ΡΡ Π²ΠΎΡΠΊΠ΅ΡΠ° ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡΡΡ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΠΈΡΡ, ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π²ΠΎΡΠΊΠ΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΠ΅ΡΡΠΈΠΉ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡ: ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΠΎΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΌ Π²ΠΎΡΠΊΠ΅ΡΠΎΠΌ Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ. ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Ρ Π²ΠΎΡΠΊΠ΅ΡΠ°ΠΌΠΈ ΡΠ΅ΡΠ΅Π· WebSocket.
Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΈΠ³ΡΠΎΠ²ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ: ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΠΈΠ³ΡΡ. ΠΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠ°ΠΊΠΈΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠ°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅/Π·Π°Π³ΡΡΠ·ΠΊΠ°.
ΠΠ΅ΡΡ Π½Π΅ΡΡΠΎΠ²Π½Π΅Π²Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° CloudRetroΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ
ΠΠΎΠ³Π΄Π° Π½ΠΎΠ²ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ CloudRetro Π½Π° ΡΠ°Π³Π°Ρ 1 ΠΈ 2, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡΡ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ Π½ΠΈΠΆΠ΅, ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡ Π²ΠΌΠ΅ΡΡΠ΅ ΡΠΎ ΡΠΏΠΈΡΠΊΠΎΠΌ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π²ΠΎΡΠΊΠ΅ΡΠΎΠ² Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π° ΠΏΠ΅ΡΠ²ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π½Π° ΡΠ°Π³Π΅ 3 ΠΊΠ»ΠΈΠ΅Π½Ρ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ HTTP Π·Π°ΠΏΡΠΎΡΠ° ping. ΠΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ Π·Π°ΡΠ΅ΠΌ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡΡ, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΠΌΠΎΠ³ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ Π²ΠΎΡΠΊΠ΅ΡΠ° Π΄Π»Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠ° ΡΠ°Π³Π΅ 4 Π½ΠΈΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΈΠ³ΡΠ°. ΠΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΈ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΌ Π²ΠΎΡΠΊΠ΅ΡΠΎΠΌ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ WebRTC.
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ°Π§ΡΠΎ Π²Π½ΡΡΡΠΈ Π²ΠΎΡΠΊΠ΅ΡΠ°
ΠΠ³ΡΠΎΠ²ΡΠ΅ ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΠ΅ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Ρ Ρ ΡΠ°Π½ΡΡΡΡ Π²Π½ΡΡΡΠΈ Π²ΠΎΡΠΊΠ΅ΡΠ° ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎ ΠΈ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ ΡΠ°ΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΡΠ΅ΡΠ΅Π· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΡΠ° ΡΠ²ΡΠ·Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎ
ΠΊΠ°Π½Π°Π»Π°ΠΌ Golang Π² ΡΠΎΠΌ ΠΆΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ΅. Π‘Π»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ΅Π»ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π³ΡΠ΅Π³Π°ΡΠΈΡ, Ρ.Π΅. Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΉ Π·Π°ΠΏΡΡΠΊ ΠΈΠ³ΡΡ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅.
ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π²ΠΎΡΠΊΠ΅ΡΠ°ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅:
- WebRTC: ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄ ΠΈ Π²ΡΠ²ΠΎΠ΄ΡΡΠΈΠΉ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ° Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°.
- ΠΠ³ΡΠΎΠ²ΠΎΠΉ ΡΠΌΡΠ»ΡΡΠΎΡ: ΠΈΠ³ΡΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ Libretro ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΏΠΎΡΠΎΠ±Π½Π° Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΈΠ³ΡΡ Π²Π½ΡΡΡΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°ΡΡ ΠΌΠ΅Π΄ΠΈΠ° ΠΈ ΠΏΠΎΡΠΎΠΊ Π²Π²ΠΎΠ΄Π°.
- ΠΠ½ΡΡΡΠΈΠΈΠ³ΡΠΎΠ²ΡΠ΅ ΠΊΠ°Π΄ΡΡ Π·Π°Ρ Π²Π°ΡΡΠ²Π°ΡΡΡΡ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΡΠΈΠΊ.
- ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅/Π°ΡΠ΄ΠΈΠΎ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΡΠΈΠΊ: ΠΊΠΎΠ΄ΠΈΡΡΡΡΠΈΠΉ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΌΠ΅Π΄ΠΈΠ°ΠΊΠ°Π΄ΡΡ, ΠΊΠΎΠ΄ΠΈΡΡΠ΅Ρ ΠΈΡ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ/Π°ΡΠ΄ΠΈΠΎ.
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ
CloudRetro ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π½Π° WebRTC ΠΊΠ°ΠΊ Π½Π° ΠΌΠ°Π³ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΡΠ³Π»ΡΠ±ΠΈΡΡΡΡ Π² ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° Golang, Ρ ΡΠ΅ΡΠΈΠ» ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΎ ΡΠ°ΠΌΠΎΠΌ WebRTC. ΠΡΠΎ ΠΏΠΎΡΡΡΡΠ°ΡΡΠ°Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠΌΠΎΠ³Π»Π° ΠΌΠ½Π΅ Π² Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΠΈ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ ΡΠ°Π²Π½ΠΎΠΉ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ Π΄ΠΎΠ»Π΅ ΡΠ΅ΠΊΡΠ½Π΄Ρ.
WebRTC
WebRTC ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΡΠΎΠΊΠΎΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ ΠΎΠ΄Π½ΠΎΡΠ°Π½Π³ΠΎΠ²ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Π½Π° Π½Π°ΡΠΈΠ²Π½ΠΎΠΌ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΡΡΡΡ API.
NAT Traversal
WebRTC ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΡΠ²ΠΎΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡΡ NAT Traversal. WebRTC ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΡΠ°Π½Π³ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΈ. ΠΠ³ΠΎ ΡΠ΅Π»Ρ β Π½Π°ΠΉΡΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ ΠΏΡΡΠΌΠΎΠΉ ΠΌΠ°ΡΡΡΡΡ, ΠΈΠ·Π±Π΅Π³Π°Ρ NAT-ΡΠ»ΡΠ·ΠΎΠ² ΠΈ Π±ΡΠ°Π½Π΄ΠΌΠ°ΡΡΡΠΎΠ² Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΡΠ°Π½Π³ΠΎΠ²ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ
ICE . Π ΡΠ°ΠΌΠΊΠ°Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° API WebRTC Π½Π°Ρ ΠΎΠ΄ΡΡ Π²Π°Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ IP-Π°Π΄ΡΠ΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² STUN ΠΈ ΠΏΠ΅ΡΠ΅Π°Π΄ΡΠ΅ΡΠΎΠ²ΡΠ²Π°ΡΡ Π΅Π³ΠΎ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ ΡΠ΅ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ (TURN ), ΠΊΠΎΠ³Π΄Π° ΠΏΡΡΠΌΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ.ΠΠ΄Π½Π°ΠΊΠΎ CloudRetro Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ. ΠΠ³ΠΎ ΠΎΠ΄Π½ΠΎΡΠ°Π½Π³ΠΎΠ²ΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π½Π΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ, Π° ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ ΠΈ ΠΎΠ±Π»Π°ΡΠ½ΡΠΌΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ. Π‘Π΅ΡΠ²Π΅ΡΠ½Π°Ρ ΡΠ°ΡΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ΅Π½ΡΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ Π½Π° ΠΏΡΡΠΌΡΡ ΡΠ²ΡΠ·Ρ, ΡΠ΅ΠΌ ΠΎΠ±ΡΡΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄Π΅Π»Π°ΡΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΎΡΠΊΡΡΡΠΈΠ΅ Π²Ρ ΠΎΠ΄ΡΡΠΈΡ ΠΏΠΎΡΡΠΎΠ² ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ IP-Π°Π΄ΡΠ΅ΡΠΎΠ² Π½Π°ΠΏΡΡΠΌΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ²Π΅Ρ Π½Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π·Π° NAT.
Π Π°Π½ΡΡΠ΅ Ρ Ρ ΠΎΡΠ΅Π» ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Π² ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ³Ρ Π΄Π»Ρ Cloud Gaming. ΠΠ΄Π΅Ρ Π·Π°ΠΊΠ»ΡΡΠ°Π»Π°ΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ ΡΠΎΠ·Π΄Π°ΡΠ΅Π»ΡΠΌ ΠΈΠ³Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΈΠ³ΡΡ ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΠ΅ ΡΠ΅ΡΡΡΡΡ. Π ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π»ΠΈ Π±Ρ Ρ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ°ΠΌΠΈ Π½Π°ΠΏΡΡΠΌΡΡ. Π ΡΠ°ΠΊΠΎΠΉ Π΄Π΅ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΌΠ°Π½Π΅ΡΠ΅ CloudRetro ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΡΡΠ΅Π΄ΠΎΠΉ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΠΌ, ΠΊΠΎΠ³Π΄Π° Π½Π° Π½Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π²ΠΈΡΠΈΡ Ρ ΠΎΡΡΠΈΠ½Π³. Π ΠΎΠ»Ρ WebRTC NAT Traversal Π·Π΄Π΅ΡΡ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½Π° Π΄Π»Ρ ΠΎΠ±Π»Π΅Π³ΡΠ΅Π½ΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ΄Π½ΠΎΡΠ°Π½Π³ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΡ ΡΠ΅ΡΡΡΡΠ°Ρ , ΡΡΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Ρ ΠΊ ΡΠ΅ΡΠΈ.
Π‘ΠΆΠ°ΡΠΈΠ΅ Π²ΠΈΠ΄Π΅ΠΎ
Π‘ΠΆΠ°ΡΠΈΠ΅ Π²ΠΈΠ΄Π΅ΠΎ β ΡΡΠΎ Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΠ°Ρ ΡΠ°ΡΡΡ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π°, ΠΊΠΎΡΠΎΡΠ°Ρ Π² Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΡΠΏΠΎΡΠΎΠ±ΡΡΠ²ΡΠ΅Ρ ΠΏΠ»Π°Π²Π½ΠΎΡΡΠΈ ΠΏΠΎΡΠΎΠΊΠ°. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π·Π½Π°ΡΡ Π²ΡΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΠΈΠ΄Π΅ΠΎ Π² VP8/H264, ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π΅ΠΎ, ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°ΡΡ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ Π·Π°Π΄Π΅ΡΠΆΠΊΡ.
Π‘ΠΆΠ°ΡΠΈΠ΅ Π²ΠΈΠ΄Π΅ΠΎ Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ ΠΎΠ±ΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ + Π²ΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΏΠΎ ΡΠ΅ΡΠΈ + Π²ΡΠ΅ΠΌΡ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ°Π»ΠΎ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΏΡΠΎΡΠ΅ΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΈ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΡΠΌ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π·Π°ΠΈΠΌΠ½ΡΠ΅ ΡΡΡΡΠΏΠΊΠΈ ΠΏΡΠΈ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡ β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ΅ΡΡΡ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅Π½ΡΡΠ΅ΠΌΡ ΡΠ°Π·ΠΌΠ΅ΡΡ ΡΠ°ΠΉΠ»Π° ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠΆΠ°ΡΠΈΠ΅.
ΠΠ΄Π΅Ρ ΡΠΆΠ°ΡΠΈΡ Π²ΠΈΠ΄Π΅ΠΎ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ Π½Π΅Π½ΡΠΆΠ½ΡΠ΅ Π±ΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΡΠΎΡ ΡΠ°Π½ΡΡ ΠΏΡΠΈ ΡΡΠΎΠΌ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΡΠΎΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΡΠΎΠΌΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠ°Π΄ΡΠΎΠ² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π°Π»Π³ΠΎΡΠΈΡΠΌ Π΄Π΅Π»Π°Π΅Ρ Π²ΡΠ²ΠΎΠ΄ Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΊΠ°Π΄ΡΠ° ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎΡΡΠ»Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΡ ΡΠ°Π·Π½ΠΈΡΠ°. ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡΠΈΠΌΠ΅ΡΠ° c PacmanβΠΎΠΌ, ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΈΡΡΠ΅ΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠΎΡΠΊΠΈ.
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Π΄ΡΠΎΠ² Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ PacmanΠ‘ΠΆΠ°ΡΠΈΠ΅ Π°ΡΠ΄ΠΈΠΎ
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠΆΠ°ΡΠΈΡ Π·Π²ΡΠΊΠ° ΠΎΠΏΡΡΠΊΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²ΠΎΡΠΏΡΠΈΠ½ΡΡΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ. Opus Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π°ΡΠ΄ΠΈΠΎΠΊΠΎΠ΄Π΅ΠΊΠΎΠΌ Ρ Π½Π°ΠΈΠ»ΡΡΡΠ΅ΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ. ΠΠ½ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π°ΡΠ΄ΠΈΠΎΠ²ΠΎΠ»Π½Ρ ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΠΎΠΉ Π΄Π°ΡΠ°Π³ΡΠ°ΠΌΠΌΡ, ΡΠ°ΠΊΠΎΠΌΡ ΠΊΠ°ΠΊ RTP (Real Time Transport Protocol β ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΡΠ°ΡΠΈΠΊΠ° ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ). ΠΠ³ΠΎ Π·Π°Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ Ρ mp3 ΠΈ aac, Π° ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ Π²ΡΡΠ΅. ΠΠ°Π΄Π΅ΡΠΆΠΊΠ° ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΠΊΠΎΠ»ΠΎ 5~66,5 ΠΌΡ.
Pion, WebRTC Π² Golang
Pion β ΡΡΠΎ ΠΏΡΠΎΠ΅ΠΊΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΊΠΈΠ²Π°Π΅Ρ WebRTC Π½Π° Golang. ΠΠΌΠ΅ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ°ΠΏΠΈΠ½Π³Π° Π½Π°ΡΠΈΠ²Π½ΡΡ C++ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ WebRTC, Pion ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΡΠΈΠ²Π½ΠΎΠΉ Golang-ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ WebRTC Ρ Π»ΡΡΡΠ΅ΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ, ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠ΅ΠΉ Ρ Go, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΠΌ Π²Π΅ΡΡΠΈΠΉ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°Ρ WebRTC.ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄Π°Π½Π½ΡΡ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΎΡΠ»ΠΈΡΠ½ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΠΌΠ΅Π½Π΅Π΅ ΡΠ΅ΠΊΡΠ½Π΄Ρ. ΠΠ½Π° ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ STUN, DTLS, SCTP ΠΈ Ρ.Π΄. ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΡ Ρ QUIC ΠΈ WebAssembly. Π‘Π°ΠΌΠ° ΠΏΠΎ ΡΠ΅Π±Π΅ ΡΡΠ° ΠΎΠΏΠ΅Π½ΡΠΎΡΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ ΠΎΡΠΎΡΠΈΠΌ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Ρ ΠΎΡΠ»ΠΈΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ, ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² ΠΈ ΠΊΠ»Π°ΡΡΠ½ΡΠΌΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ.
ΠΠΎΠΌΡΡΠ½ΠΈΡΠΈ Pion, Π²ΠΎΠ·Π³Π»Π°Π²Π»ΡΠ΅ΠΌΠΎΠ΅ ΠΎΡΠ΅Π½Ρ ΡΡΡΠ°ΡΡΠ½ΡΠΌ ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Π΅ΠΌ, Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΎΠΆΠΈΠ²Π»Π΅Π½Π½ΠΎΠ΅, ΡΠ°ΠΌ Π²Π΅Π΄Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ Π΄ΠΈΡΠΊΡΡΡΠΈΠΉ ΠΎ WebRTC. ΠΡΠ»ΠΈ Π²Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ ΡΡΠ° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ, ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡΠ΅ΡΡ ΠΊ
http://pion.ly/slack β Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ.ΠΠ°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ CloudRetro Π½Π° Golang
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π²ΠΎΡΠΊΠ΅ΡΠ° Π½Π° GoΠΠ°Π½Π°Π»Ρ Go Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΊΡΠ°ΡΠΈΠ²ΠΎΠΌΡ Π΄ΠΈΠ·Π°ΠΉΠ½Ρ ΠΊΠ°Π½Π°Π»ΠΎΠ² Go, ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°ΡΡΡΡ. ΠΠ°ΠΊ ΠΈ Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ΅, Π² ΡΠ°Π·Π½ΡΡ GoRoutines ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ²ΠΎΠΈΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΈ ΠΎΠ±ΡΠ°Π΅ΡΡΡ ΠΏΠΎ ΠΊΠ°Π½Π°Π»Π°ΠΌ. ΠΡΠ±ΠΎΡΠΎΡΠ½ΠΎΠ΅ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Golang Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΠΌΡ ΡΠΎΠ±ΡΡΠΈΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π² ΠΈΠ³ΡΠ΅ (game tick). ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΄Π»Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Π½Π΅ Π½ΡΠΆΠ½Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ, ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠ½ΡΠΏΡΠΎΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈΠ³ΡΡ. ΠΡΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΡΠΌ, Π²ΡΠΏΠΎΠ»Π½ΡΡ Π²Ρ ΠΎΠ΄ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΎ. ΠΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ game tickβΠ° Π±ΡΠΊΡΠ½Π΄ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π²Π²ΠΎΠ΄Π°, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌ.
func (e *gameEmulator) gameUpdate() { for { select { case <-e.saveOperation: e.saveGameState() case key := <-e.input: e.updateGameState(key) case <-e.done: e.close() return } } }
Fan-in / Fan-out
ΠΡΠΎΡ ΡΠ°Π±Π»ΠΎΠ½ Golang ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΌΠΎΠ΅Π³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ CrowdPlay ΠΈ Multiple Player. Π‘Π»Π΅Π΄ΡΡ ΡΡΠΎΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Ρ, Π²ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ Π²Ρ ΠΎΠ΄Ρ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ½Π°ΡΠ΅ Π²ΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ Π² ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΠΉ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ°Π½Π°Π». ΠΠ³ΡΠΎΠ²ΡΠ΅ ΠΌΠ΅Π΄ΠΈΠ° Π·Π°ΡΠ΅ΠΌ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ Π½Π° Π²ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ½Π°ΡΠ΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΡ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈΠ³ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΈΠ³ΡΠΎΠ²ΡΠΌΠΈ ΡΠ΅ΡΡΠΈΡΠΌΠΈ ΡΠ°Π·Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠ΅Π°Π½ΡΠ°ΠΌΠΈΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ Golang
Golang Π½Π΅ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π΅Π½. ΠΠ°Π½Π°Π» ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΉ. ΠΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΎΠΉ ΠΊΠ°Π½Π°Π» Go β ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΡ ΡΠΎΠ±ΡΡΠΈΠΉ, Π½ΠΎ ΠΊΠ°Π½Π°Π» Π½Π΅ Π΄Π°Π΅Ρ Π½Π°ΠΈΠ»ΡΡΡΠ΅ΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠΎΠ΄ ΠΊΠ°Π½Π°Π»ΠΎΠΌ Π΅ΡΡΡ ΡΠ»ΠΎΠΆΠ½Π°Ρ Π»ΠΎΠ³ΠΈΠΊΠ° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ. ΠΠΎΡΡΠΎΠΌΡ Ρ Π²Π½Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΠ²Ρ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠ² Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ Π°ΡΠΎΠΌΠ°ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈ Π·Π°ΠΌΠ΅Π½Π΅ ΠΊΠ°Π½Π°Π»ΠΎΠ² Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, garbage collector Π² Golang Π½Π΅ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ, ΠΈΠ·-Π·Π° ΡΠ΅Π³ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΏΠΎΠ΄ΠΎΠ·ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π΄Π»ΠΈΠ½Π½ΡΠ΅ ΠΏΠ°ΡΠ·Ρ. ΠΡΠΎ ΡΠΈΠ»ΡΠ½ΠΎ ΠΌΠ΅ΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
CGO
Π ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ°Ρ VP8/H264 Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Golang Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π΄Π»Ρ ΡΠΆΠ°ΡΠΈΡ ΠΌΠ΅Π΄ΠΈΠ° ΠΈ Libretro Π΄Π»Ρ ΠΈΠ³ΡΠΎΠ²ΡΡ ΡΠΌΡΠ»ΡΡΠΎΡΠΎΠ². ΠΡΠ΅ ΡΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±Π΅ΡΡΠΊΠ°ΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ C Π² Go Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ
CGO . ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠ² ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π²ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΅ Dave Cheney . ΠΡΠΎΠ±Π»Π΅ΠΌΡ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Ρ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ:- Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠΉΠΌΠ°ΡΡ ΠΊΡΠ°Ρ Π² CGO, Π΄Π°ΠΆΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Golang RecoveryCrash;
- Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ·ΠΊΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ Π΄Π΅ΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² CGO.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π― Π΄ΠΎΡΡΠΈΠ³ ΡΠ²ΠΎΠ΅ΠΉ ΡΠ΅Π»ΠΈ β ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΡΡ Π² ΠΎΠ±Π»Π°ΡΠ½ΡΡ ΠΈΠ³ΡΠΎΠ²ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠ°Ρ ΠΈ ΡΠΎΠ·Π΄Π°Π» ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΈΠ³ΡΠ°ΡΡ Π² Π½ΠΎΡΡΠ°Π»ΡΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΡΡΠΎ-ΠΈΠ³ΡΡ Ρ ΠΌΠΎΠΈΠΌΠΈ Π΄ΡΡΠ·ΡΡΠΌΠΈ ΠΎΠ½Π»Π°ΠΉΠ½. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π±ΡΠ»ΠΎ Π±Ρ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ Π±Π΅Π· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Pion ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π° Pion. Π― ΡΡΠ΅Π·Π²ΡΡΠ°ΠΉΠ½ΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ Π·Π° Π΅Π³ΠΎ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΠ΅ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅. ΠΡΠΎΡΡΡΠ΅ API, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ WebRTC ΠΈ Pion, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ»ΠΈ ΠΏΠ»Π°Π²Π½ΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ. ΠΠΎΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ΅ Π΄ΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΡΡΡΠ²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ Π±ΡΠ»ΠΎ Π²ΡΠΏΡΡΠ΅Π½ΠΎ Π½Π° ΡΠΎΠΉ ΠΆΠ΅ Π½Π΅Π΄Π΅Π»Π΅, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Ρ Π·Π°ΡΠ°Π½Π΅Π΅ Π½Π΅ Π·Π½Π°Π» ΠΎΠ± ΠΎΠ΄Π½ΠΎΡΠ°Π½Π³ΠΎΠ²ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ (P2P).
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΠΏΡΠΎΡΡΠΎΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ, P2P-ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠ΅ Π²Π΅ΡΠ°Π½ΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΡΡ Π² ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ Π½Π°ΡΠΊΠ΅. ΠΠΉ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΈΠΌΠ΅ΡΡ Π΄Π΅Π»ΠΎ ΡΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠ»Π΅ΡΠ½ΠΈΡ ΡΠ΅ΡΠ΅Π²ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ IP ΠΈ NAT Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΡΠ°Π½Π³ΠΎΠ²ΠΎΠΉ ΡΠ΅ΡΡΠΈΠΈ. ΠΠ° Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΡΡΠΈΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ Ρ Π½Π°ΠΊΠΎΠΏΠΈΠ» ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅Π½Π½ΡΡ Π·Π½Π°Π½ΠΈΠΉ ΠΎ ΡΠ΅ΡΠΈ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ Π²ΡΠ΅ΠΌ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΏΠΎΡΡΡΠΎΠΈΡΡ P2P-ΠΏΡΠΎΠ΄ΡΠΊΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ WebRTC.
CloudRetro ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅Ρ Π²ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΎΠΆΠΈΠ΄Π°Π», Ρ ΠΌΠΎΠ΅ΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ ΡΠ΅ΡΡΠΎ-Π³Π΅ΠΉΠΌΠ΅ΡΠ°. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΌΠΎΠ³Ρ ΡΠ»ΡΡΡΠΈΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ΅ΡΡ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠ΅ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ Π³ΡΠ°ΡΠΈΠΊΠΈ ΠΈΠ³Ρ, ΠΈΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄Π΅Π»ΠΈΡΡΡΡ ΠΈΠ³ΡΠ°ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ. Π― ΡΠΏΠΎΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Ρ Π½Π°Π΄ ΡΡΠΈΠΌ. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΡΠ»Π΅Π΄ΠΈΡΠ΅ Π·Π°
ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΡΠ΅ Π΅Π³ΠΎ, Π΅ΡΠ»ΠΈ ΠΎΠ½ Π²Π°ΠΌ Π½ΡΠ°Π²ΠΈΡΡΡ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com