Π‘ΠΎΡΡΡΠ΅Ρ ΠΊΠ°ΡΠΎ ΡΡΠ»ΡΠ³Π°, ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΡΠΎ ΡΡΠ»ΡΠ³Π°, ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΊΠ°ΡΠΎ ΡΡΠ»ΡΠ³Π°, ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΊΠ°ΡΠΎ ΡΡΠ»ΡΠ³Π°, Π²ΠΈΠ΄Π΅ΠΎΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ ΠΊΠ°ΡΠΎ ΡΡΠ»ΡΠ³Π°, Π° ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΠΊΠ°ΠΆΠ΅ΠΌ Π·Π° ΠΎΠ±Π»Π°ΡΠ½ΠΈΡΠ΅ ΠΈΠ³ΡΠΈ ΠΊΠ°ΡΠΎ ΡΡΠ»ΡΠ³Π°? ΠΠ΅ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΎΠΏΠΈΡΠ° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΎΠ±Π»Π°ΡΠ½ΠΈ ΠΈΠ³ΡΠΈ (Cloud Gaming), Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Stadia, Π½Π°ΡΠΊΠΎΡΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Π½ΠΎ ΠΎΡ Google. Stadia , Π½ΠΎ ΠΌΠΎΠ³Π°Ρ Π»ΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ WebRTC ΠΏΠΎ ΡΡΡΠΈΡ Π½Π°ΡΠΈΠ½?
Π’Ρ Π°Π½ ΠΠ³ΡΠ΅Π½ (Thanh Nguyen) ΡΠ΅ΡΠΈ Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° ΡΠ°Π·ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π² ΡΠ²ΠΎΡ ΠΎΠΏΠ΅Π½ΡΠΎΡΡΠ΅Π½ ΠΏΡΠΎΠ΅ΠΊΡ CloudRetro. CloudRetro Π΅ Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° Pion, WebRTC Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° Go (Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π½Π° ΠΎΡ Π΅ΠΊΠΈΠΏΠ° Π½Π° Pion Π·Π° ΠΏΠΎΠΌΠΎΡΡΠ° ΠΏΡΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ°ΡΠ° Π½Π° ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ). Π ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ Π’Ρ Π°Π½ ΠΏΡΠ°Π²ΠΈ ΠΎΠ±Π·ΠΎΡ Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° ΡΠ²ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΡΠΏΠΎΠ΄Π΅Π»Ρ ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΅ Π½Π°ΡΡΠΈΠ» ΠΈ Ρ ΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°ΡΠ΅Π»ΡΡΠ²Π° ΡΠ΅ Π΅ ΡΠ±Π»ΡΡΠΊΠ°Π» ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ°.
ΠΡΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
ΠΠΈΠ½Π°Π»Π°ΡΠ° Π³ΠΎΠ΄ΠΈΠ½Π°, ΠΊΠΎΠ³Π°ΡΠΎ Google ΠΎΠ±ΡΠ²ΠΈ Stadia, Π±ΡΠΊΠ²Π°Π»Π½ΠΎ Π·Π°Π³ΡΠ±ΠΈΡ ΡΠΌΠ° ΡΠΈ. ΠΠ΄Π΅ΡΡΠ° Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΡΠ½ΠΈΠΊΠ°Π»Π½Π° ΠΈ ΠΈΠ½ΠΎΠ²Π°ΡΠΈΠ²Π½Π°, ΡΠ΅ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠΈ Π·Π°Π΄Π°Π²Π°Ρ Π²ΡΠΏΡΠΎΡΠ° ΠΊΠ°ΠΊ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΡΠ»ΡΡΠΈ ΠΏΡΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ. ΠΠ΅Π»Π°Π½ΠΈΠ΅ΡΠΎ ΠΌΠΈ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ° ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ ΡΠ΅ΠΌΠ°ΡΠ° ΠΌΠ΅ ΠΏΠΎΠ΄ΡΠΈΠΊΠ½Π° Π΄Π° ΡΡΠ·Π΄Π°ΠΌ ΡΠ²ΠΎΡ Π²Π΅ΡΡΠΈΡ Π½Π° ΠΎΠΏΠ΅Π½ΡΠΎΡΡΠ½Π° ΠΎΠ±Π»Π°ΡΠ½Π° ΠΈΠ³ΡΠ°. Π Π΅Π·ΡΠ»ΡΠ°ΡΡΡ Π±Π΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΡΠ°Π½ΡΠ°ΡΡΠΈΡΠ΅Π½. ΠΠΎ-Π΄ΠΎΠ»Ρ Π±ΠΈΡ ΠΈΡΠΊΠ°Π» Π΄Π° ΡΠΏΠΎΠ΄Π΅Π»Ρ ΠΏΡΠΎΡΠ΅ΡΠ° ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ° Π²ΡΡΡ Ρ ΠΌΠΎΡΡΠ° Π³ΠΎΠ΄ΠΈΡΠ½Π° .
TLDR: ΠΊΡΠ°ΡΠΊΠ° ΡΠ»Π°ΠΉΠ΄ Π²Π΅ΡΡΠΈΡ Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΠΈ
ΠΠ°ΡΠΎ ΠΎΠ±Π»Π°ΡΠ½ΠΈΡΠ΅ ΠΈΠ³ΡΠΈ ΡΠ° Π±ΡΠ΄Π΅ΡΠ΅ΡΠΎ
ΠΡΡΠ²Π°ΠΌ, ΡΠ΅ Cloud Gaming ΡΠΊΠΎΡΠΎ ΡΠ΅ ΡΡΠ°Π½Π΅ Π½ΠΎΠ²ΠΎΡΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ Π½Π΅ ΡΠ°ΠΌΠΎ Π½Π° ΠΈΠ³ΡΠΈΡΠ΅, Π½ΠΎ ΠΈ Π½Π° Π΄ΡΡΠ³ΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΠ°ΡΠ°. ΠΠ±Π»Π°ΡΠ½ΠΈΡΠ΅ ΠΈΠ³ΡΠΈ ΡΠ° Π²ΡΡΡ ΡΡ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ-ΡΡΡΠ²ΡΡ ΠΌΠΎΠ΄Π΅Π»Π°. Π’ΠΎΠ·ΠΈ ΠΌΠΎΠ΄Π΅Π» ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄Π° ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠ° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π° ΡΡΠ΅Π· ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅ Π½Π° ΠΈΠ³ΡΠΎΠ²Π°ΡΠ° Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π° ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ ΡΡΡΠ²ΡΡ ΠΈ ΡΡΡΠΈΠΉΠΌΠΈΠ½Π³ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ/Π°ΡΠ΄ΠΈΠΎ ΠΊΡΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. Π‘ΡΡΠ²ΡΡΡΡ ΠΈΠ·Π²ΡΡΡΠ²Π° ΡΠ΅ΠΆΠΊΠ°ΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡΡ Π²Π΅ΡΠ΅ Π½Π΅ Π·Π°Π²ΠΈΡΠΈ ΠΎΡ Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΈΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ.
Google Stadia, ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ³ΡΠ° Π½Π° (Ρ.Π΅. Π²ΠΈΡΠΎΠΊΠΎΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½ΠΈ ΠΈΠ³ΡΠΈ-Π±Π»ΠΎΠΊΠ±Π°ΡΡΠ΅ΡΠΈ) Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° YouTube. Π‘ΡΡΠ°ΡΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠΈ ΠΈ ΠΊΡΠΌ Π΄ΡΡΠ³ΠΈ ΡΠ΅ΠΆΠΊΠΈ ΠΎΡΡΠ»Π°ΠΉΠ½ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠ°ΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈΠ»ΠΈ 2D/3D Π³ΡΠ°ΡΠΈΡΠ΅Π½ Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΈ Π΄Ρ., Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΠ°Π±ΠΈΠ»Π½ΠΎ Π΄Π° Π³ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π° Ρ Π½ΠΈΡΠΊΠΈ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ.

ΠΡΠ΄Π΅ΡΠ΅ΡΠΎ Π½Π° ΡΠ°Π·ΠΈ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡ: ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅ΡΠ΅ ΡΠΈ, Π°ΠΊΠΎ Microsoft Windows 10 ΡΠ°Π±ΠΎΡΠ΅ΡΠ΅ Π² Π±ΡΠ°ΡΠ·ΡΡΠ° Chrome?
ΠΠ±Π»Π°ΡΠ½ΠΈΡΠ΅ ΠΈΠ³ΡΠΈ ΡΠ° ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ»ΠΎΠΆΠ½ΠΈ.
ΠΠ³ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π΅ Π΅Π΄Π½Π° ΠΎΡ ΡΠ΅Π·ΠΈ ΡΠ΅Π΄ΠΊΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ, ΠΊΡΠ΄Π΅ΡΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° ΠΏΠΎΡΡΠΎΡΠ½Π½Π° Π±ΡΡΠ·Π° ΡΠ΅Π°ΠΊΡΠΈΡ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ. ΠΠΊΠΎ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΡΡΠ΅ΡΠ½Π΅ΠΌ Π·Π°Π±Π°Π²ΡΠ½Π΅ ΠΎΡ 2 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ ΠΏΡΠΈ ΠΊΠ»ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ°, ΡΠΎΠ²Π° Π΅ ΠΏΡΠΈΠ΅ΠΌΠ»ΠΈΠ²ΠΎ. ΠΠΈΠ΄Π΅ΠΎΠΏΠΎΡΠΎΠΊΠΎΠ²Π΅ΡΠ΅ Π½Π° ΠΆΠΈΠ²ΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΈΠ·ΠΎΡΡΠ°Π²Π°Ρ Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅ΠΊΡΠ½Π΄ΠΈ, Π½ΠΎ Π²ΡΠ΅ ΠΏΠ°ΠΊ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, Π°ΠΊΠΎ ΠΈΠ³ΡΠ°ΡΠ° ΡΠ΅ΡΡΠΎ Π·Π°Π±Π°Π²Ρ Ρ 500 ΠΌΡ, ΠΈΠ³ΡΠ°ΡΠ° ΠΏΡΠΎΡΡΠΎ ΡΡΠ°Π²Π° Π½Π΅Π²ΡΠ·ΠΌΠΎΠΆΠ½Π°. Π¦Π΅Π»ΡΠ° Π½ΠΈ Π΅ Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π΅ΠΌ ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π½ΠΈΡΠΊΠ° Π»Π°ΡΠ΅Π½ΡΠΈΡ, Π·Π° Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΎ ΡΠ°Π·ΡΠΈΠ²Π° ΠΌΠ΅ΠΆΠ΄Ρ Π²Ρ ΠΎΠ΄Π° ΠΈ ΠΌΠ΅Π΄ΠΈΡΡΠ°. ΠΠ°ΡΠΎΠ²Π° ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΈΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊΡΠΌ Π²ΠΈΠ΄Π΅ΠΎΡΡΡΠΈΠΉΠΌΠΈΠ½Π³Π° ΡΡΠΊ Π½Π΅ Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠΈΠΌ.

ΠΠ±Ρ ΡΠ°Π±Π»ΠΎΠ½ Π½Π° ΠΎΠ±Π»Π°ΡΠ½Π°ΡΠ° ΠΈΠ³ΡΠ°.
ΠΡΠ²ΠΎΡΠ΅Π½ ΠΏΡΠΎΠ΅ΠΊΡ CloudRetro.
Π Π΅ΡΠΈΡ Π΄Π° ΡΡΠ·Π΄Π°ΠΌ ΡΠ΅ΡΡΠΎΠ² ΠΎΠ±ΡΠ°Π·Π΅Ρ Π½Π° ΠΎΠ±Π»Π°ΡΠ½Π° ΠΈΠ³ΡΠ°, Π·Π° Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΡ, Π΄Π°Π»ΠΈ Π²ΡΠΈΡΠΊΠΎ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈ ΡΠ°ΠΊΠΈΠ²Π° ΡΡΡΠΎΠ³ΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ. ΠΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡΠ° ΠΈΠ·Π±ΡΠ°Ρ Golang, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π΅ Π½Π°ΠΉ-Π·Π°ΠΏΠΎΠ·Π½Π°ΡΠΈΡΡ ΠΌΠΈ Π΅Π·ΠΈΠΊ ΠΈ Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π·Π° ΡΠ°Π·ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΈΡΠΈΠ½ΠΈ, ΠΊΠ°ΠΊ ΡΠ΅ ΠΎΠΊΠ°Π·Π° ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ. Go Π΅ ΠΏΡΠΎΡΡ ΠΈ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ·ΠΎ; ΠΊΠ°Π½Π°Π»ΠΈΡΠ΅ Π² Go ΡΠ° ΠΎΡΠ»ΠΈΡΠ½ΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡΠ°.
ΠΡΠΎΠ΅ΠΊΡ β ΠΎΠ±Π»Π°ΡΠ½Π°ΡΠ° ΠΈΠ³ΡΠΎΠ²Π° ΡΡΠ»ΡΠ³Π° Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ Π·Π° ΡΠ΅ΡΡΠΎ ΠΈΠ³ΡΠΈ. Π¦Π΅Π»ΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΅ Π΄Π° Π²Π½Π΅ΡΠ΅ Π² ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠ΅ΡΡΠΎ ΠΈΠ³ΡΠΈ Π½Π°ΠΉ-ΠΊΠΎΠΌΡΠΎΡΡΠ½ΠΈΡΠ΅ ΠΈΠ³ΡΠΎΠ²ΠΈ ΡΡΠ΅ΡΠ°Π½ΠΈΡ ΠΈ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈ ΠΌΡΠ»ΡΠΈΠΏΠ»Π΅ΠΉΡΡ.
ΠΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°Π΅ΡΠ΅ Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΡΠΊ: .
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π½Π° CloudRetro.
ΠΠ° Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ Π½Π° ΡΡΠ»Π°ΡΠ° ΠΌΠΎΡ Π½Π° ΠΎΠ±Π»Π°ΡΠ½ΠΈΡΠ΅ ΠΈΠ³ΡΠΈ Π² CloudRetro ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΠ΅ΡΡΠΎ ΠΈΠ³ΡΠΈ. Π’ΠΎΠ²Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ½ΠΈΠΊΠ°Π»Π½ΠΈ ΠΈΠ³ΡΠΎΠ²ΠΈ ΠΏΡΠ΅ΠΆΠΈΠ²ΡΠ²Π°Π½ΠΈΡ.
- ΠΠΎΡΡΠ°ΡΠΈΠ²Π½ΠΎΡΡ Π½Π° ΠΈΠ³ΡΠ°ΡΠ°.
- ΠΠΎΠΌΠ΅Π½ΡΠ°Π»Π½ΠΎ Π²ΡΠ·ΠΏΡΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ ΠΏΡΠΈ ΠΎΡΠ²Π°ΡΡΠ½Π΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ°; Π½Π΅ ΡΠ° Π½ΡΠΆΠ½ΠΈ ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ ΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅.
- Π Π°Π±ΠΎΡΠΈ Π² ΠΌΠΎΠ±ΠΈΠ»Π΅Π½ Π±ΡΠ°ΡΠ·ΡΡ, ΡΠ°ΠΊΠ° ΡΠ΅ Π½ΡΠΌΠ° Π½ΡΠΆΠ΄Π° ΠΎΡ Π½ΠΈΠΊΠ°ΠΊΡΠ² ΡΠΎΡΡΡΠ΅Ρ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅.
- ΠΠ³ΡΠΎΠ²ΠΈΡΠ΅ ΡΠ΅ΡΠΈΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΠΏΠΎΠ΄Π΅Π»ΡΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈ Π΄Π° ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Π² ΠΎΠ±Π»Π°ΠΊΠ° Π·Π° ΡΠ»Π΅Π΄Π²Π°ΡΠΎΡΠΎ Π²Π»ΠΈΠ·Π°Π½Π΅.
- ΠΠ³ΡΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΡΡΠΈΠΉΠΌΠ²Π°, Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΈΠ³ΡΠ°Π΅ Π½Π° Π½Π΅Ρ Π²Π΅Π΄Π½Π°Π³Π° ΠΎΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ:
- Crowdplay ΡΠΈΠΏ TwitchPlayPokemon, ΡΠ°ΠΌΠΎ ΡΠ΅ ΠΏΠΎ-ΠΊΡΠΎΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½ ΠΈ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅.
- ΠΡΠ»Π°ΠΉΠ½ ΠΈΠ³ΡΠΈ ΠΎΠ½Π»Π°ΠΉΠ½. ΠΠΎΠ³Π°Ρ Π΄Π° ΠΈΠ³ΡΠ°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Π±Π΅Π· Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π½Π° ΠΌΡΠ΅ΠΆΠ°ΡΠ°. Π Samurai Shodown ΡΠ΅Π³Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠ³ΡΠ°ΡΡ 2 ΠΈΠ³ΡΠ°ΡΠΈ ΠΏΡΠ΅Π· ΠΎΠ±Π»Π°ΠΊΠ° CloudRetro.

ΠΠ΅ΠΌΠΎ Π²Π΅ΡΡΠΈΡ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠ° ΠΎΠ½Π»Π°ΠΉΠ½ ΠΈΠ³ΡΠ° Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°
ΠΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ ΠΈ ΡΡΠ΅ΠΊ ΠΎΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ
ΠΠΎ-Π΄ΠΎΠ»Ρ Π΅ ΡΠΏΠΈΡΡΠΊ Π½Π° ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ°, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΡ ΠΏΡΠ΅Π΄ΠΈ Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°.
1. ΠΠ΄ΠΈΠ½ ΠΈΠ³ΡΠ°Ρ
Π’ΠΎΠ²Π° ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π½Π΅ ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΈ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ ΡΡΠΊ, Π½ΠΎ Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ ΠΌΠΎΠΈΡΠ΅ ΠΊΠ»ΡΡΠΎΠ²ΠΈ ΠΈΠ·Π²ΠΎΠ΄ΠΈ. Π’ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° ΠΎΠ±Π»Π°ΡΠ½ΠΈΡΠ΅ ΠΈΠ³ΡΠΈ Π΄Π° ΡΠ΅ ΠΎΡΠ΄Π°Π»Π΅ΡΠ°Ρ ΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΡΠ΅ ΠΌΠΎΠΆΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΠΏΠΎΡΠΎΡΠ½ΠΈ ΡΡΠ»ΡΠ³ΠΈ. ΠΠΊΠΎ ΡΠ΅ ΡΠΎΠΊΡΡΠΈΡΠ°ΠΌΠ΅ Π²ΡΡΡ Ρ Π΅Π΄Π½ΠΎΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠ° ΠΈΠ³ΡΠ°, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π°Π²ΠΈΠΌ ΠΎΡ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈΡ ΡΡΡΠ²ΡΡ ΠΈΠ»ΠΈ CDN, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΏΡΠ΅Π΄Π°Π²Π°ΠΌΠ΅ ΠΏΠΎΡΠΎΠΊΠ° Π½Π° ΠΌΠ°ΡΠΈΡΠ΅. ΠΠΌΠ΅ΡΡΠΎ Π΄Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°ΠΌΠ΅ ΠΏΠΎΡΠΎΡΠΈ Π½Π° ΠΏΠΎΠ³Π»ΡΡΠ°Ρ ΡΡΡΠ²ΡΡ ΠΈΠ»ΠΈ Π΄Π° ΠΏΡΠ΅Π΄Π°Π²Π°ΠΌΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΈ Π½Π° ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈΡ WebSocket ΡΡΡΠ²ΡΡ, ΡΠ΅ΡΠ²ΠΈΡΠ½ΠΈΡΠ΅ ΠΏΠΎΡΠΎΡΠΈ ΡΠ΅ ΠΏΡΠ΅Π΄Π°Π²Π°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ ΡΡΠ΅Π· P2P ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Ρ WebRTC.2. ΠΠ΅Π΄ΠΈΠ΅Π½ ΠΏΠΎΡΠΎΠΊ Ρ Π½ΠΈΡΠΊΠ° Π»Π°ΡΠ΅Π½ΡΠ½ΠΎΡΡ
Π§Π΅ΡΠ΅ΠΉΠΊΠΈ Π·Π° Stadia, ΡΠ΅ΡΡΠΎ ΡΡΠ΅ΡΠ°ΠΌ Π² Π½ΡΠΊΠΎΠΈ ΡΡΠ°ΡΠΈΠΈ ΡΠΏΠΎΠΌΠ΅Π½Π°Π²Π°Π½Π΅ Π½Π° WebRTC. Π Π°Π·Π±ΡΠ°Ρ , ΡΠ΅ WebRTC Π΅ ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ΠΈ Π΅ ΡΡΠ΄Π΅ΡΠ½ΠΎ ΠΏΡΠΈΠ³ΠΎΠ΄Π΅Π½Π° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² ΠΎΠ±Π»Π°ΡΠ½ΠΈ ΠΈΠ³ΡΠΈ. WebRTC Π΅ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΊΠΎΠΉΡΠΎ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΡΠ΅Π± Π±ΡΠ°ΡΠ·ΡΡΠΈ ΠΈ ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠ΅Π· ΠΏΡΠΎΡΡ API. Π’ΠΎΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ P2P ΡΠ²ΡΡΠ·Π²Π°Π½Π΅, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ΠΎ Π·Π° ΠΌΠ΅Π΄ΠΈΠΈ ΠΈ ΠΈΠΌΠ° Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈ ΠΊΠΎΠ΄Π΅ΡΠΈ, ΠΊΠ°ΡΠΎ VP8 ΠΈ H264.ΠΠ°Π΄ΠΎΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π½ΠΈΠ΅ Π½Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π΅Π½ ΠΊΠΎΠΌΡΠΎΡΡ Π·Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅, Π²ΠΌΠ΅ΡΡΠΎ Π½Π° Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° Π²ΠΈΡΠΎΠΊΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ Π½Π° Π³ΡΠ°ΡΠΈΠΊΠ°ΡΠ°. Π Π°Π»Π³ΠΎΡΠΈΡΡΠΌΠ° ΡΠ° Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π·Π°Π³ΡΠ±ΠΈ. Π Google Stadia ΠΈΠΌΠ° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΡΡΡΠΏΠΊΠ° Π·Π° Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΡΡΠ²ΡΡΠ°, ΠΈ ΠΊΠ°Π΄ΡΠΈΡΠ΅ ΡΠ΅ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Ρ Π΄ΠΎ ΠΏΠΎ-Π²ΠΈΡΠΎΠΊΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠ΅Π΄ΠΈ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° P2P Π²ΡΠ·Π»ΠΈΡΠ΅.
3. Π Π°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° Ρ Π³Π΅ΠΎΠ³ΡΠ°ΡΡΠΊΠ° ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ
ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠΎΠ»ΠΊΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ Π΅ Π°Π»Π³ΠΎΡΠΈΡΡΠΌΡΡ Π·Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ ΠΈ ΠΊΠΎΠ΄ΡΡ, ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΠΎΡΡΠ°Π²Π° ΡΠ΅ΡΠ°Π²Π°ΡΠΈΡΡ ΡΠ°ΠΊΡΠΎΡ, ΠΊΠΎΠΉΡΠΎ Π½Π°ΠΉ-ΠΌΠ½ΠΎΠ³ΠΎ Π²Π»ΠΈΡΠ΅ Π½Π° Π·Π°Π±Π°Π²ΡΠ½Π΅ΡΠΎ. ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠΌΠ° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π·Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° Π½Π°ΠΉ-Π±Π»ΠΈΠ·ΠΊΠΈΡ Π΄ΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ ΡΡΡΠ²ΡΡ, Π·Π° Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ°Π»ΠΈ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ (RTT). ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π° Ρ 1 ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡ ΠΈ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΡΡΠΈΠΉΠΌΠΈΠ½Π³ ΡΡΡΠ²ΡΡΠ°, ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΏΠΎ ΡΠ΅Π»ΠΈΡ ΡΠ²ΡΡ: ΠΠ°ΠΏΠ°Π΄Π΅Π½ Π‘ΠΠ©, ΠΠ·ΡΠΎΡΠ΅Π½ Π‘ΠΠ©, ΠΠ²ΡΠΎΠΏΠ°, Π‘ΠΈΠ½Π³Π°ΠΏΡΡ, ΠΠΈΡΠ°ΠΉ. ΠΡΠΈΡΠΊΠΈ ΡΡΡΠΈΠΉΠΌΠΈΠ½Π³ ΡΡΡΠ²ΡΡΠΈ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΈ. Π‘ΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅Π³ΡΠ»ΠΈΡΠ° ΡΠ²ΠΎΠ΅ΡΠΎ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π°ΡΠΎ ΡΡΡΠ²ΡΡ ΡΠ΅ ΠΏΡΠΈΡΡΠ΅Π΄ΠΈΠ½ΠΈ ΠΈΠ»ΠΈ ΠΈΠ·ΠΊΠ»ΡΡΠΈ ΠΎΡ ΠΌΡΠ΅ΠΆΠ°ΡΠ°. Π’Π°ΠΊΠ°, ΠΏΡΠΈ Π³ΠΎΠ»ΡΠΌ ΡΡΠ°ΡΠΈΠΊ, Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ΡΠΎ Π½Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΡΡΠ²ΡΡΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° Ρ ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»Π½ΠΎ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅.4. Π‘ΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ Π½Π° Π±ΡΠ°ΡΠ·ΡΡΠΈΡΠ΅
ΠΠ±Π»Π°ΡΠ½ΠΈΡΠ΅ ΠΈΠ³ΡΠΈ ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΡ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠ΅, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎ ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΠΈΠΌΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π² Π±ΡΠ°ΡΠ·ΡΡ. ΠΡΠ°ΡΠ·ΡΡΠΈΡΠ΅ ΠΏΠΎΠΌΠ°Π³Π°Ρ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ ΠΈΠ³ΡΠΎΠ²ΠΈΡΡ ΠΏΡΠΎΡΠ΅Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉ-ΡΠ΄ΠΎΠ±Π΅Π½ Π·Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅, ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°ΠΉΠΊΠΈ Π³ΠΈ ΠΎΡ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠΎΡΡΡΠ΅Ρ ΠΈ Ρ Π°ΡΠ΄ΡΠ΅Ρ. ΠΡΠ°ΡΠ·ΡΡΠΈΡΠ΅ ΡΡΡΠΎ ΠΏΠΎΠΌΠ°Π³Π°Ρ Π΄Π° ΡΠ΅ ΠΎΡΠΈΠ³ΡΡΠΈ ΠΊΡΠΎΡ-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½ΠΎΡΡ Π·Π° ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ ΠΈ Π΄Π΅ΡΠΊΡΠΎΠΏ Π²Π΅ΡΡΠΈΠΈ. ΠΠ° ΡΠ°ΡΡΠΈΠ΅, WebRTC ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡΠ΅ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π±ΡΠ°ΡΠ·ΡΡΠΈ.5. Π―ΡΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ³ΡΠΎΠ²ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ ΡΡΠ»ΡΠ³Π°ΡΠ°
ΠΠΈΠΆΠ΄Π°ΠΌ ΡΡΠ»ΡΠ³Π°ΡΠ° Π·Π° ΠΎΠ±Π»Π°ΡΠ½ΠΈ ΠΈΠ³ΡΠΈ ΠΊΠ°ΡΠΎ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°. ΠΡΠ΅ΠΊΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠΌΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° ΡΠ²ΡΡΠΆΠ΅ ΠΊΠ°ΠΊΠ²ΠΎΡΠΎ ΠΈ Π΄Π° Π΅ ΠΊΡΠΌ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ°. Π‘Π΅Π³Π° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Ρ Ρ ΡΡΠ»ΡΠ³Π°ΡΠ° Π·Π° ΠΎΠ±Π»Π°ΡΠ½ΠΈ ΠΈΠ³ΡΠΈ, Π·Π°ΡΠΎΡΠΎ 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.

ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΡΠ»Π΅Π΄ ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° Π΄ΠΎΡΡΡΠΏΠΠ°ΠΊΠ²ΠΎ ΠΈΠΌΠ° Π²ΡΡΡΠ΅ Π² ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΠ°
ΠΠ³ΡΠΎΠ²ΠΈΡΠ΅ ΠΈ ΡΡΡΠΈΠΉΠΌΠΈΠ½Π³ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΠΈ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΎ Π² ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΠ° ΠΈ ΠΎΠ±ΠΌΠ΅Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΡΠ΅Π· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ°Π·ΠΈ ΡΠ²ΡΡΠ·Π°Π½ΠΎΡΡ ΡΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° ΡΡΠ΅Π· ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΏΠΎ Π² ΡΡΡΠΈΡ ΠΏΡΠΎΡΠ΅Ρ. Π‘Π»Π΅Π΄Π²Π°ΡΠ°ΡΠ° ΡΠ΅Π» Π΅ ΡΠ΅Π³ΡΠ΅Π³Π°ΡΠΈΡΡΠ°, Ρ.Π΅. Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ³ΡΠ° Π² Π΄ΡΡΠ³ ΠΏΡΠΎΡΠ΅Ρ.

ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΠ°ΠΡΠ½ΠΎΠ²Π½ΠΈ ΡΡΡΡΠ°Π²Π½ΠΈ ΡΠ°ΡΡΠΈ:
- 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 ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ ΡΡΠ΅Π· ΠΏΡΠΎΡΠ΅Ρ, Π½Π°ΡΠ΅ΡΠ΅Π½ . Π ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΡΠΎΠ·ΠΈ ΠΏΡΠΎΡΠ΅Ρ, 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 (Real Time Transport Protocol β ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π·Π° ΠΏΡΠ΅Π½ΠΎΡ Π½Π° ΡΠ΅Π°Π»Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π΅Π½ ΡΡΠ°ΡΠΈΠΊ). ΠΠ°Π΄ΡΡΠΆΠ°Π½Π΅ΡΠΎ ΠΌΡ Π΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ ΡΠΎΠ²Π° Π½Π° mp3 ΠΈ aac, Π° ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎΡΠΎ Π΅ ΠΏΠΎ-Π²ΠΈΡΠΎΠΊΠΎ. ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π·Π°ΠΊΡΡΠ½Π΅Π½ΠΈΠ΅ΡΠΎ Π΅ ΠΎΠΊΠΎΠ»ΠΎ 5~66,5 ΠΌΡ.
Pion, WebRTC Π² Golang
Π΅ ΠΏΡΠΎΠ΅ΠΊΡ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅Π½Π°ΠΏΠΈΡΠ²Π° WebRTC Π½Π° Golang. ΠΠΌΠ΅ΡΡΠΎ Π΄Π° ΠΎΠ±Π²ΠΈΠ²Π° ΠΎΠ±ΠΈΡΠ°ΠΉΠ½ΠΈΡΠ΅ Π½Π°ΡΠΈΠ²Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π½Π° C++ WebRTC, Pion Π΅ Π½Π°ΡΠΈΠ²Π½Π° Golang ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° WebRTC Ρ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ, ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Go ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π²Π΅ΡΡΠΈΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈΡΠ΅ WebRTC.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΡΠ»ΠΈΡΠ½ΠΈ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ Ρ Π·Π°ΠΊΡΡΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ ΡΠ΅ΠΊΡΠ½Π΄Π°. Π’Ρ ΠΈΠΌΠ° ΡΠ²ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° STUN, DTLS, SCTP ΠΈ Π΄Ρ., ΠΈ Π½ΡΠΊΠΎΠΈ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈ Ρ QUIC ΠΈ WebAssembly. Π’Π°Π·ΠΈ ΠΎΠΏΠ΅Π½ΡΠΎΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠ°ΠΌΠ° ΠΏΠΎ ΡΠ΅Π±Π΅ ΡΠΈ Π΅ Π½Π°ΠΈΡΡΠΈΠ½Π° Π΄ΠΎΠ±ΡΡ ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ Π½Π° ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ Ρ ΠΎΡΠ»ΠΈΡΠ½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ ΠΈ ΡΡΡΠ°Ρ ΠΎΡΠ½ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΈ.
ΠΠ±ΡΠ΅ΡΡΠ²ΠΎΡΠΎ Π½Π° Pion, ΡΡΠΊΠΎΠ²ΠΎΠ΄Π΅Π½ΠΎ ΠΎΡ ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΠ°Π»Π΅Π½ ΡΡΠ·Π΄Π°ΡΠ΅Π», Π΅ Π΄ΠΎΡΡΠ° Π°ΠΊΡΠΈΠ²Π½ΠΎ, Π²ΠΎΠ΄ΡΡ ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½ΠΈ Π΄ΠΈΡΠΊΡΡΠΈΠΈ ΠΎΡΠ½ΠΎΡΠ½ΠΎ WebRTC. ΠΠΊΠΎ Π²ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π° ΡΠ°Π·ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ, ΠΏΡΠΈΡΡΠ΅Π΄ΠΈΠ½Π΅ΡΠ΅ ΡΠ΅ ΠΊΡΠΌ ΡΠ΅ Π½Π°ΡΡΠΈΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΈ Π½Π΅ΡΠ°.
ΠΠ°ΠΏΠΈΡΠ²Π°Π½Π΅ Π½Π° CloudRetro Π½Π° Golang

Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊ Π½Π° GoΠΠ°Π½Π°Π»ΠΈΡΠ΅ Π½Π° Go Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΡΠ°ΡΠΈΠ²ΠΈΡ Π΄ΠΈΠ·Π°ΠΉΠ½ Π½Π° ΠΊΠ°Π½Π°Π»ΠΈΡΠ΅ Π½Π° Go, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ Ρ ΠΏΠΎΡΠΎΡΠ½ΠΎ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΡΠ±ΠΈΡΠΈΡ ΠΈ ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΡΠΌ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ΅ ΠΎΠΏΡΠΎΡΡΡΠ²Π°Ρ. ΠΠ°ΠΊΡΠΎ Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ°ΡΠ°, Π² ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ GoRoutines ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ ΡΠ°Π±ΠΎΡΡΡ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. ΠΡΠ΅ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΠΏΡΠ°Π²Π»ΡΠ²Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎΡΠΎ ΡΠΈ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈ ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠΈΡΠ° ΡΡΠ΅Π· ΠΊΠ°Π½Π°Π»ΠΈ. ΠΠ·Π±ΠΎΡΡΡ Π½Π° Golang Π½Π°Π»Π°Π³Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π΅Π΄Π½ΠΎ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎ ΡΡΠ±ΠΈΡΠΈΠ΅ Π²ΡΠ² Π²ΡΠ΅ΠΊΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π² ΠΈΠ³ΡΠ°ΡΠ° (game tick). Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ Π·Π° ΡΠ°ΠΊΡΠ² Π΄ΠΈΠ·Π°ΠΉΠ½ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ Π·Π°ΠΏΠ°Π·Π²Π°, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ Π΅ ΠΏΡΠ»Π΅Π½ ΠΌΠΎΠΌΠ΅Π½ΡΠ΅Π½ snapshot Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΠΈΠ³ΡΠ°ΡΠ°. Π’ΠΎΠ²Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΡΡΠ°Π½Π΅ Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠΎ, ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΠΉΠΊΠΈ Π²Ρ ΠΎΠ΄Π°, Π΄ΠΎΠΊΠ°ΡΠΎ Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ΡΠΎ Π½Π΅ Π±ΡΠ΄Π΅ Π·Π°Π²ΡΡΡΠ΅Π½ΠΎ. ΠΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π²ΡΠ΅ΠΊΠΈ 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 } } }Π€Π°Π½-ΠΈΠ½ / Π€Π°Π½-Π°ΡΡ
Π’ΠΎΠ·ΠΈ Golang ΡΠ°Π±Π»ΠΎΠ½ Π΅ ΠΈΠ΄Π΅Π°Π»Π΅Π½ Π·Π° ΠΌΠΎΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π½Π° CrowdPlay ΠΈ Multiple Player. Π‘Π»Π΅Π΄Π²Π°ΠΉΠΊΠΈ ΡΠΎΠ·ΠΈ ΡΠ°Π±Π»ΠΎΠ½, Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ Π²Ρ ΠΎΠ΄ΠΎΠ²Π΅ Π² Π΅Π΄Π½Π° ΡΡΠ°Ρ ΡΠ΅ Π²Π³ΡΠ°ΠΆΠ΄Π°Ρ Π² ΡΠ΅Π½ΡΡΠ°Π»Π΅Π½ Π²Ρ ΠΎΠ΄Π΅Π½ ΠΊΠ°Π½Π°Π». ΠΠ³ΡΠ°Π»Π½ΠΈΡΠ΅ ΠΌΠ΅Π΄ΠΈΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π°Ρ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Π² Π΅Π΄Π½Π° ΡΡΠ°Ρ. ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΠΏΠΎΡΡΠΈΠ³Π°ΠΌΠ΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΠΈΠ³ΡΠ°ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΈΠ³ΡΠΎΠ²ΠΈ ΡΠ΅ΡΠΈΠΈ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ.

Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ΅ΡΠΈΠΈΠΠ΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈ Π½Π° Golang
Golang Π½Π΅ Π΅ ΠΏΠ΅ΡΡΠ΅ΠΊΡΠ΅Π½. ΠΠ°Π½Π°Π»ΡΡ Π΅ Π±Π°Π²Π΅Π½. Π ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈΡΠ΅, ΠΊΠ°Π½Π°Π»ΠΈΡΠ΅ Π² Go ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎ-Π»Π΅ΡΠ΅Π½ Π½Π°ΡΠΈΠ½ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΈ ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΈ ΡΡΠ±ΠΈΡΠΈΡ, Π½ΠΎ ΠΊΠ°Π½Π°Π»ΡΡ Π½Π΅ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠ°ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ. ΠΠΎΠ΄ ΠΊΠ°Π½Π°Π»ΠΈΡΠ΅ ΠΈΠΌΠ° ΡΠ»ΠΎΠΆΠ½Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π° Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅. ΠΠ°ΡΠΎΠ²Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡ Π½ΡΠΊΠΎΠΈ ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ°, ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΏΡΠΈΠ»Π°Π³Π°ΠΉΠΊΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ Π°ΡΠΎΠΌΠ½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠ°Π½Π°Π»ΠΈΡΠ΅ Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°.
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, garbage collector Π² Golang Π΅ Π½Π΅ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°Π½, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΠΏΠΎΠ΄ΠΎΠ·ΡΠΈΡΠ΅Π»Π½ΠΎ Π΄ΡΠ»Π³ΠΈ ΠΏΠ°ΡΠ·ΠΈ. Π’ΠΎΠ²Π° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΡΠ΅ΡΠΈ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅.
CGO
ΠΡΠΎΠ΅ΠΊΡΡΡ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠ° VP8/H264 Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π½Π° Golang Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ Π·Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠ΅Π΄ΠΈΠΈ ΠΈ Libretro Π·Π° ΠΈΠ³ΡΠΎΠ²ΠΈ Π΅ΠΌΡΠ»Π°ΡΠΎΡΠΈ. ΠΡΠΈΡΠΊΠΈ ΡΠ΅Π·ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±Π²ΠΈΠ²Π°Ρ C Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π² Go Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° . ΠΡΠΊΠΎΠΈ ΠΎΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈΡΠ΅ ΡΠ° ΠΏΠΎΡΠΎΡΠ΅Π½ΠΈ Π² . ΠΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅, Ρ ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ²Π°ΠΌ:
- Π½Π΅Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π΄Π° ΡΠ»ΠΎΠ²ΠΈΠΌ ΡΡΠΈΠ² Π² CGO, Π΄ΠΎΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Golang RecoveryCrash;
- Π½Π΅Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΡΠ·ΠΊΠΎΡΠΎ ΠΌΡΡΡΠΎ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°, ΠΊΠΎΠ³Π°ΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΡΠΊΡΠΈΠ΅ΠΌ Π΄Π΅ΡΠ°ΠΉΠ»Π½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π² CGO.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠΎΡΡΠΈΠ³Π½Π°Ρ ΡΠ΅Π»ΡΠ° ΡΠΈ β ΡΠ°Π·Π±ΡΠ°Ρ ΠΎΠ±Π»Π°ΡΠ½ΠΈΡΠ΅ ΠΈΠ³ΡΠΎΠ²ΠΈ ΡΡΠ»ΡΠ³ΠΈ ΠΈ ΡΡΠ·Π΄Π°Π΄ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, ΠΊΠΎΡΡΠΎ ΠΏΠΎΠΌΠ°Π³Π° Π΄Π° ΠΈΠ³ΡΠ°Ρ Π½ΠΎΡΡΠ°Π»Π³ΠΈΡΠ½ΠΈ ΡΠ΅ΡΡΠΎ ΠΈΠ³ΡΠΈ Ρ ΠΏΡΠΈΡΡΠ΅Π»ΠΈΡΠ΅ ΠΌΠΈ ΠΎΠ½Π»Π°ΠΉΠ½. Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠ΅ΡΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π½Π΅Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Pion ΠΈ ΠΏΠΎΠ΄ΠΊΡΠ΅ΠΏΠ°ΡΠ° Π½Π° ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ° Pion. ΠΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΡΡΠΌ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ Π·Π° ΠΈΠ½ΡΠ΅Π½Π·ΠΈΠ²Π½ΠΎΡΠΎ ΠΌΡ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅. ΠΡΠΎΡΡΠΈΡΠ΅ API, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΈ ΠΎΡ WebRTC ΠΈ Pion, ΠΎΡΠΈΠ³ΡΡΠΈΡ Π° Π³Π»Π°Π΄ΠΊΠ° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ. ΠΡΡΠ²ΠΎΡΠΎ ΠΌΠΈ Π΄ΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΡΡΠ²ΠΎ Π·Π° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Π±Π΅ΡΠ΅ ΠΏΡΡΠ½Π°ΡΠΎ Π² ΡΡΡΠ°ΡΠ° ΡΠ΅Π΄ΠΌΠΈΡΠ°, Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ Π·Π° Π΅Π΄Π½ΠΎΡΠΎΠ³ΠΎΠ²Π° Π²ΡΡΠ·ΠΊΠ° (P2P).
ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΡΠ° Π΅ ΠΏΡΠΎΡΡΠ°, P2P ΡΡΡΠΈΠΉΠΌΠΈΠ½Π³ΡΡ Π΅ Π½Π°ΠΈΡΡΠΈΠ½Π° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½Π° ΠΎΠ±Π»Π°ΡΡ Π² ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΠ°ΡΠ°. Π’ΠΎΠΉ ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ²Π° ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΠΌΠ½ΠΎΠ³ΠΎΠ³ΠΎΠ΄ΠΈΡΠ½Π° ΠΌΡΠ΅ΠΆΠΎΠ²Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°, ΠΊΠ°ΡΠΎ IP ΠΈ NAT, Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΠΈΡοΌp2pοΌΡΠ΅ΡΠΈΡ. ΠΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π°ΡΡΡΠΏΠ°Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅Π½Π½ΠΈ Π·Π½Π°Π½ΠΈΡ Π·Π° ΠΌΡΠ΅ΠΆΠΈΡΠ΅ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°, Π·Π°ΡΠΎΠ²Π° ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌ Π½Π° Π²ΡΠΈΡΠΊΠΈ Π΄Π° ΠΎΠΏΠΈΡΠ°Ρ Π΄Π° ΠΈΠ·Π³ΡΠ°Π΄ΡΡ P2P ΠΏΡΠΎΠ΄ΡΠΊΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° WebRTC.
CloudRetro ΠΎΠ±ΡΠ»ΡΠΆΠ²Π° Π²ΡΠΈΡΠΊΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅, ΠΊΠΎΠΈΡΠΎ ΠΎΡΠ°ΠΊΠ²Π°Ρ ΠΊΠ°ΡΠΎ ΡΠ΅ΡΡΠΎ-Π³Π΅ΠΉΠΌΡΡ. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, ΡΠΌΡΡΠ°ΠΌ, ΡΠ΅ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π»Π°ΡΡΠΈ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π° Π΄Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π° Π½Π°ΠΏΡΠ°Π²Ρ ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΠΏΠΎ-Π½Π°Π΄Π΅ΠΆΠ΄Π½Π° ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½Π°, Π΄Π° ΠΎΡΠΈΠ³ΡΡΡ ΠΏΠΎ-Π²ΠΈΡΠΎΠΊΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ Π½Π° Π³ΡΠ°ΡΠΈΠΊΠ°ΡΠ° Π½Π° ΠΈΠ³ΡΠΈΡΠ΅ ΠΈΠ»ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΡΠΏΠΎΠ΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΈΠ³ΡΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅. Π Π°Π±ΠΎΡΡ ΡΡΡΡΠ΄Π½ΠΎ Π²ΡΡΡ Ρ ΡΠΎΠ²Π°. ΠΠΎΠ»Ρ, ΡΠ»Π΅Π΄Π΅ΡΠ΅ Π·Π° ΠΈ Π³ΠΎ ΠΏΠΎΠ΄ΠΊΡΠ΅ΠΏΠ΅ΡΠ΅, Π°ΠΊΠΎ Π²ΠΈ Ρ Π°ΡΠ΅ΡΠ²Π°.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com







