WebRTC рд╡рд░ рдореБрдХреНрдд рд╕реНрд░реЛрдд рдХреНрд▓рд╛рдЙрдб рдЧреЗрдорд┐рдВрдЧ: p2p, рдорд▓реНрдЯреАрдкреНрд▓реЗрдЕрд░, рд╢реВрдиреНрдп рд╡рд┐рд▓рдВрдм

WebRTC рд╡рд░ рдореБрдХреНрдд рд╕реНрд░реЛрдд рдХреНрд▓рд╛рдЙрдб рдЧреЗрдорд┐рдВрдЧ: p2p, рдорд▓реНрдЯреАрдкреНрд▓реЗрдЕрд░, рд╢реВрдиреНрдп рд╡рд┐рд▓рдВрдм
рд╕реЗрд╡рд╛ рдореНрд╣рдгреВрди рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░, рд╕реЗрд╡рд╛ рдореНрд╣рдгреВрди рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛, рд╕реЗрд╡рд╛ рдореНрд╣рдгреВрди рд╡реНрдпрд╛рд╕рдкреАрда, рд╕реЗрд╡рд╛ рдореНрд╣рдгреВрди рд╕рдВрдкреНрд░реЗрд╖рдг рд╡реНрдпрд╛рд╕рдкреАрда, рд╕реЗрд╡рд╛ рдореНрд╣рдгреВрди рд╡реНрд╣рд┐рдбрд┐рдУ рдХреЙрдиреНрдлрд░рдиреНрд╕рд┐рдВрдЧ, рд╕реЗрд╡рд╛ рдореНрд╣рдгреВрди рдХреНрд▓рд╛рдЙрдб рдЧреЗрдорд┐рдВрдЧрдЪреЗ рдХрд╛рдп? Google рдиреЗ рдЕрд▓реАрдХрдбреЗрдЪ рд▓рд╛рдБрдЪ рдХреЗрд▓реЗрд▓реЗ Stadia рд╕рд╛рд░рдЦреЗ рдХреНрд▓рд╛рдЙрдб рдЧреЗрдорд┐рдВрдЧ (рдХреНрд▓рд╛рдЙрдб рдЧреЗрдорд┐рдВрдЧ) рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреЗ рдЕрдиреЗрдХ рдкреНрд░рдпрддреНрди рдЖрдзреАрдЪ рдЭрд╛рд▓реЗ рдЖрд╣реЗрдд. рд╕реНрдЯреЗрдбрд┐рдпрд╛ WebRTC рд╕рд╛рдареА рдирд╡реАрди рдирд╛рд╣реА, рдкрд░рдВрддреБ рдЗрддрд░рд╣реА рддреНрдпрд╛рдЪ рдкреНрд░рдХрд╛рд░реЗ WebRTC рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛рдд рдХрд╛?

Thanh Nguyen рдиреЗ рддреНрдпрд╛рдЪреНрдпрд╛ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреНрд▓рд╛рдЙрдбрд░реЗрдЯреНрд░реЛрд╡рд░ рдпрд╛ рд╕рдВрдзреАрдЪреА рдЪрд╛рдЪрдгреА рдШреЗрдгреНрдпрд╛рдЪреЗ рдард░рд╡рд▓реЗ. CloudRetro Pion рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЖрд╣реЗ, рд▓реЛрдХрдкреНрд░рд┐рдп Go рд╡рд░ рдЖрдзрд╛рд░рд┐рдд WebRTC рд▓рд╛рдпрдмреНрд░рд░реА (рдзрдиреНрдпрд╡рд╛рдж рджрд╛рдЦрд╡рд▓реЗ рд╣рд╛ рд▓реЗрдЦ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдд рдорджрдд рдХреЗрд▓реНрдпрд╛рдмрджреНрджрд▓ Pion рд╡рд┐рдХрд╛рд╕ рд╕рдВрдШрд╛рдХрдбреВрди). рдпрд╛ рд▓реЗрдЦрд╛рдд, рдерд╛рдиреНрд╣ рддреНрдпрд╛рдЪреНрдпрд╛ рдкреНрд░рдХрд▓реНрдкрд╛рдЪреНрдпрд╛ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдЪреЗ рд╡рд┐рд╣рдВрдЧрд╛рд╡рд▓реЛрдХрди рдкреНрд░рджрд╛рди рдХрд░рддреЛ рдЖрдгрд┐ рддреНрдпрд╛рдЪреНрдпрд╛ рдХрд╛рдорд╛рдЪреНрдпрд╛ рджрд░рдореНрдпрд╛рди рддреНрдпрд╛рдиреЗ рдХреЛрдгрддреНрдпрд╛ рдЙрдкрдпреБрдХреНрдд рдЧреЛрд╖реНрдЯреА рд╢рд┐рдХрд▓реНрдпрд╛ рдЖрдгрд┐ рдХреЛрдгрддреНрдпрд╛ рдЖрд╡реНрд╣рд╛рдирд╛рдВрдЪрд╛ рд╕рд╛рдордирд╛ рдХреЗрд▓рд╛ рдпрд╛рдмрджреНрджрд▓ рджреЗрдЦреАрд▓ рдмреЛрд▓рддреЛ.

рдиреЛрдВрдж

рдЧреЗрд▓реНрдпрд╛ рд╡рд░реНрд╖реА, рдЬреЗрд╡реНрд╣рд╛ Google рдиреЗ Stadia рдЪреА рдШреЛрд╖рдгрд╛ рдХреЗрд▓реА, рддреЗрд╡реНрд╣рд╛ рддреЗ рдорд╛рдЭреЗ рдорди рдЙрдбрд╛рд▓реЗ. рдХрд▓реНрдкрдирд╛ рдЗрддрдХреА рдЕрдиреЛрдЦреА рдЖрдгрд┐ рдирд╛рд╡рд┐рдиреНрдпрдкреВрд░реНрдг рдЖрд╣реЗ рдХреА рдорд▓рд╛ рд╕рддрдд рдЖрд╢реНрдЪрд░реНрдп рд╡рд╛рдЯрд╛рдпрдЪреЗ рдХреА рд╣реЗ рд╕рдзреНрдпрд╛рдЪреНрдпрд╛ рддрдВрддреНрд░рдЬреНрдЮрд╛рдирд╛рд╕рд╣ рдХрд╕реЗ рд╢рдХреНрдп рдЖрд╣реЗ. рд╣рд╛ рд╡рд┐рд╖рдп рдЕрдзрд┐рдХ рдЪрд╛рдВрдЧрд▓реНрдпрд╛ рдкреНрд░рдХрд╛рд░реЗ рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рдЪреНрдпрд╛ рдЗрдЪреНрдЫреЗрдиреЗ рдорд▓рд╛ рдУрдкрди-рд╕реЛрд░реНрд╕ рдХреНрд▓рд╛рдЙрдб рдЧреЗрдордЪреА рд╕реНрд╡рддрдГрдЪреА рдЖрд╡реГрддреНрддреА рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕ рдкреНрд░рд╡реГрддреНрдд рдХреЗрд▓реЗ. рдкрд░рд┐рдгрд╛рдо рдлрдХреНрдд рд╡рд┐рд▓рдХреНрд╖рдг рд╣реЛрддрд╛. рдЦрд╛рд▓реА рдореА рдорд╛рдЭреНрдпрд╛ рд╡рд░реНрд╖рд╛рд╡рд░ рдХрд╛рдо рдХрд░рдгреНрдпрд╛рдЪреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рд╛рдорд╛рдпрд┐рдХ рдХрд░реВ рдЗрдЪреНрдЫрд┐рддреЛ рдкреНрд░рдХрд▓реНрдк.

TLDR: рд╣рд╛рдпрд▓рд╛рдЗрдЯрд╕рд╣ рд▓рд╣рд╛рди рд╕реНрд▓рд╛рдЗрдб рдЖрд╡реГрддреНрддреА

рдХреНрд▓рд╛рдЙрдб рдЧреЗрдорд┐рдВрдЧ рд╣реЗ рднрд╡рд┐рд╖реНрдп рдХрд╛ рдЖрд╣реЗ

рдорд▓рд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЖрд╣реЗ рдХреА рдХреНрд▓рд╛рдЙрдб рдЧреЗрдорд┐рдВрдЧ рд▓рд╡рдХрд░рдЪ рдХреЗрд╡рд│ рдЧреЗрдорд┐рдВрдЧрдЪреАрдЪ рдирд╡реНрд╣реЗ рддрд░ рд╕рдВрдЧрдгрдХ рд╡рд┐рдЬреНрдЮрд╛рдирд╛рдЪреНрдпрд╛ рдЗрддрд░ рдХреНрд╖реЗрддреНрд░рд╛рдВрдЪреАрд╣реА рдкреБрдврдЪреА рдкрд┐рдвреА рдмрдиреЗрд▓. рдХреНрд▓рд╛рдЙрдб рдЧреЗрдорд┐рдВрдЧ рд╣реЗ рдХреНрд▓рд╛рдпрдВрдЯ/рд╕рд░реНрд╡реНрд╣рд░ рдореЙрдбреЗрд▓рдЪреЗ рд╢рд┐рдЦрд░ рдЖрд╣реЗ. рд╣реЗ рдореЙрдбреЗрд▓ рд░рд┐рдореЛрдЯ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдЧреЗрдо рд▓реЙрдЬрд┐рдХ рд╣реЛрд╕реНрдЯ рдХрд░реВрди рдЖрдгрд┐ рдХреНрд▓рд╛рдпрдВрдЯрд▓рд╛ рдЗрдореЗрдЬ/рдСрдбрд┐рдУ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХрд░реВрди рдмреЕрдХрдПрдВрдб рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рд╡рд╛рдврд╡рддреЗ рдЖрдгрд┐ рдлреНрд░рдВрдЯрдПрдВрдб рдХрд╛рдо рдХрдореА рдХрд░рддреЗ. рд╕рд░реНрд╡реНрд╣рд░ рдЬрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддреЛ рддреНрдпрд╛рдореБрд│реЗ рдХреНрд▓рд╛рдпрдВрдЯ рдпрд╛рдкреБрдвреЗ рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рдорд░реНрдпрд╛рджрд╛рдВрдЪреНрдпрд╛ рджрдпреЗрд╡рд░ рд░рд╛рд╣рдд рдирд╛рд╣реА.

Google Stadia рдореВрд▓рдд: рддреБрдореНрд╣рд╛рд▓рд╛ рдЦреЗрд│реВ рджреЗрддреЗ AAA рдЦреЗрд│ (рдореНрд╣рдгрдЬреЗ рд╣рд╛рдп-рдПрдВрдб рдмреНрд▓реЙрдХрдмрд╕реНрдЯрд░ рдЧреЗрдо) YouTube рд╕рд╛рд░рдЦреНрдпрд╛ рдЗрдВрдЯрд░рдлреЗрд╕рд╡рд░. рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯреАрдо рдХрд┐рдВрд╡рд╛ 2D/3D рдЧреНрд░рд╛рдлрд┐рдХ рдбрд┐рдЭрд╛рдИрди рдЗрддреНрдпрд╛рджреА рд╕рд╛рд░рдЦреНрдпрд╛ рдЗрддрд░ рднрд╛рд░реА рдСрдлрд▓рд╛рдЗрди рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рд╡рд░ рд╣реАрдЪ рдкрджреНрдзрдд рд▓рд╛рдЧреВ рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ. рдЬреЗрдгреЗрдХрд░реВрди рдЖрдореНрд╣реА рддреНрдпрд╛рдВрдирд╛ рдПрдХрд╛рд╣реВрди рдЕрдзрд┐рдХ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░ рдХрдореА-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдХрд░рдгрд╛рдВрд╡рд░ рд╕рд╛рддрддреНрдпрд╛рдиреЗ рдЪрд╛рд▓рд╡реВ рд╢рдХрддреЛ.

WebRTC рд╡рд░ рдореБрдХреНрдд рд╕реНрд░реЛрдд рдХреНрд▓рд╛рдЙрдб рдЧреЗрдорд┐рдВрдЧ: p2p, рдорд▓реНрдЯреАрдкреНрд▓реЗрдЕрд░, рд╢реВрдиреНрдп рд╡рд┐рд▓рдВрдм
рдпрд╛ рддрдВрддреНрд░рдЬреНрдЮрд╛рдирд╛рдЪреЗ рднрд╡рд┐рд╖реНрдп: рдХрд▓реНрдкрдирд╛ рдХрд░рд╛ рдХреА Microsoft Windows 10 Chrome рдмреНрд░рд╛рдЙрдЭрд░рд╡рд░ рдЪрд╛рд▓рд▓реЗ рддрд░?

рдХреНрд▓рд╛рдЙрдб рдЧреЗрдорд┐рдВрдЧ рддрд╛рдВрддреНрд░рд┐рдХрджреГрд╖реНрдЯреНрдпрд╛ рдЖрд╡реНрд╣рд╛рдирд╛рддреНрдордХ рдЖрд╣реЗ

рдЧреЗрдорд┐рдВрдЧ рд╣реЗ рдЕрд╢рд╛ рджреБрд░реНрдорд┐рд│ рдХреНрд╖реЗрддреНрд░рд╛рдВрдкреИрдХреА рдПрдХ рдЖрд╣реЗ рдЬреЗрдереЗ рд╕рддрдд, рдЬрд▓рдж рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪрд╛ рдкреНрд░рддрд┐рд╕рд╛рдж рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рддреЛ. рдкреГрд╖реНрдард╛рд╡рд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛рдирд╛ рдЕрдзреВрдирдордзреВрди рдЖрдореНрд╣рд╛рд▓рд╛ 2 рд╕реЗрдХрдВрджрд╛рдЪрд╛ рд╡рд┐рд▓рдВрдм рдЭрд╛рд▓реНрдпрд╛рд╕, рд╣реЗ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдЖрд╣реЗ. рдереЗрдЯ рд╡реНрд╣рд┐рдбрд┐рдУ рдкреНрд░рд╡рд╛рд╣ рдХрд╛рд╣реА рд╕реЗрдХрдВрдж рдорд╛рдЧреЗ рд░рд╛рд╣рддрд╛рдд, рдкрд░рдВрддреБ рддрд░реАрд╣реА рд╡рд╛рдЬрд╡реА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рджреЗрддрд╛рдд. рддрдерд╛рдкрд┐, рдЬрд░ рдЧреЗрдо рд╡рд╛рд░рдВрд╡рд╛рд░ 500ms рдиреЗ рдорд╛рдЧреЗ рдкрдбрдд рдЕрд╕реЗрд▓, рддрд░ рддреЛ рдЦреЗрд│рддрд╛ рдпреЗрдгрд╛рд░ рдирд╛рд╣реА. рдЖрдордЪреЗ рдзреНрдпреЗрдп рдЕрддреНрдпрдВрдд рдХрдореА рд╡рд┐рд▓рдВрдмрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреЗ рдЖрд╣реЗ рдЬреЗрдгреЗрдХрд░реВрди рдЗрдирдкреБрдЯ рдЖрдгрд┐ рдореАрдбрд┐рдпрд╛рдордзреАрд▓ рдЕрдВрддрд░ рд╢рдХреНрдп рддрд┐рддрдХреЗ рдХрдореА рдЕрд╕реЗрд▓. рддреНрдпрд╛рдореБрд│реЗ, рд╡реНрд╣рд┐рдбрд┐рдУ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧрдЪрд╛ рдкрд╛рд░рдВрдкрд╛рд░рд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрди рдпреЗрдереЗ рд▓рд╛рдЧреВ рд╣реЛрдд рдирд╛рд╣реА.

WebRTC рд╡рд░ рдореБрдХреНрдд рд╕реНрд░реЛрдд рдХреНрд▓рд╛рдЙрдб рдЧреЗрдорд┐рдВрдЧ: p2p, рдорд▓реНрдЯреАрдкреНрд▓реЗрдЕрд░, рд╢реВрдиреНрдп рд╡рд┐рд▓рдВрдм
рд╕рд╛рдорд╛рдиреНрдп рдХреНрд▓рд╛рдЙрдб рдЧреЗрдо рдЯреЗрдореНрдкрд▓реЗрдЯ

рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреНрд▓рд╛рдЙрдбрд░реЗрдЯреНрд░реЛ

рдЕрд╢рд╛ рдШрдЯреНрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдирд┐рд░реНрдмрдВрдзрд╛рдВрдореБрд│реЗ рд╣реЗ рд╕рд░реНрд╡ рд╢рдХреНрдп рдЖрд╣реЗ рдХреА рдирд╛рд╣реА рд╣реЗ рдкрд╛рд╣рдгреНрдпрд╛рд╕рд╛рдареА рдореА рдХреНрд▓рд╛рдЙрдб рдЧреЗрдордЪрд╛ рдЪрд╛рдЪрдгреА рдирдореБрдирд╛ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛. рд╕рдВрдХрд▓реНрдкрдиреЗрдЪреНрдпрд╛ рдкреБрд░рд╛рд╡реНрдпрд╛рд╕рд╛рдареА рдореА рдЧреЛрд▓рдВрдЧрдЪреА рдирд┐рд╡рдб рдХреЗрд▓реА рдХрд╛рд░рдг рддреА рднрд╛рд╖рд╛ рдорд▓рд╛ рд╕рд░реНрд╡рд╛рдд рдкрд░рд┐рдЪрд┐рдд рд╣реЛрддреА рдЖрдгрд┐ рдЗрддрд░ рдЕрдиреЗрдХ рдХрд╛рд░рдгрд╛рдВрд╕рд╛рдареА рддреА рдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╕рд╛рдареА рдпреЛрдЧреНрдп рд╣реЛрддреА, рдЬрд╕реЗ рдорд▓рд╛ рдирдВрддрд░ рд╕рд╛рдкрдбрд▓реЗ. рдЧреЛ рд╕реЛрдкреЗ рдЖрд╣реЗ рдЖрдгрд┐ рдЦреВрдк рд▓рд╡рдХрд░ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрддреЗ; рдЧреЛ рдордзреАрд▓ рдЪреЕрдирд▓ рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЙрддреНрддрдо рдЖрд╣реЗрдд.

рдкреНрд░рдХрд▓реНрдк CloudRetro.io рд░реЗрдЯреНрд░реЛ рдЧреЗрдорд┐рдВрдЧрд╕рд╛рдареА рдУрдкрди рд╕реЛрд░реНрд╕ рдХреНрд▓рд╛рдЙрдб рдЧреЗрдорд┐рдВрдЧ рд╕реЗрд╡рд╛ рдЖрд╣реЗ. рдкрд╛рд░рдВрдкрд╛рд░рд┐рдХ рд░реЗрдЯреНрд░реЛ рдЧреЗрдордордзреНрдпреЗ рд╕рд░реНрд╡рд╛рдд рдЖрд░рд╛рдорджрд╛рдпрдХ рдЧреЗрдорд┐рдВрдЧ рдЕрдиреБрднрд╡ рдЖрдгрдгреЗ рдЖрдгрд┐ рдорд▓реНрдЯреАрдкреНрд▓реЗрдЕрд░ рдЬреЛрдбрдгреЗ рд╣реЗ рдкреНрд░рдХрд▓реНрдкрд╛рдЪреЗ рдзреНрдпреЗрдп рдЖрд╣реЗ.
рдЖрдкрдг рдпреЗрдереЗ рдкреНрд░рдХрд▓реНрдкрд╛рдмрджреНрджрд▓ рдЕрдзрд┐рдХ рдЬрд╛рдгреВрди рдШреЗрдК рд╢рдХрддрд╛: https://github.com/giongto35/cloud-game.

рдХреНрд▓рд╛рдЙрдбрд░реЗрдЯреНрд░реЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛

рдХреНрд▓рд╛рдЙрдбрд░реЗрдЯреНрд░реЛ рдХреНрд▓рд╛рдЙрдб рдЧреЗрдорд┐рдВрдЧрдЪреА рд╢рдХреНрддреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд░реЗрдЯреНрд░реЛ рдЧреЗрдо рд╡рд╛рдкрд░рддреЗ. рдЬреНрдпрд╛рдореБрд│реЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрдиреЗрдХ рдЕрдиреЛрдЦреЗ рдЧреЗрдорд┐рдВрдЧ рдЕрдиреБрднрд╡ рдорд┐рд│реВ рд╢рдХрддрд╛рдд.

  • рдЦреЗрд│рд╛рдЪреА рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА
    • рдкреГрд╖реНрда рдЙрдШрдбрддрд╛рдирд╛ рдЭрдЯрдкрдЯ рдкреНрд▓реЗрдмреЕрдХ; рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдВрд╡рд╛ рд╕реНрдерд╛рдкрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╛рд╣реА
    • рдореЛрдмрд╛рдЗрд▓ рдмреНрд░рд╛рдЙрдЭрд░рдордзреНрдпреЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ, рдореНрд╣рдгреВрди рддреЗ рдЪрд╛рд▓рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА рдХреЛрдгрддреНрдпрд╛рд╣реА рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА

  • рдЧреЗрдо рд╕рддреНрд░реЗ рдПрдХрд╛рдзрд┐рдХ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕реЗрд╕рд╡рд░ рд╕рд╛рдорд╛рдпрд┐рдХ рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддрд╛рдд рдЖрдгрд┐ рдкреБрдвреАрд▓ рд╡реЗрд│реА рд▓реЙрдЧ рдЗрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреНрд▓рд╛рдЙрдбрдордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддрд╛рдд
  • рдЧреЗрдо рдкреНрд░рд╡рд╛рд╣рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ рдХрд┐рдВрд╡рд╛ рддреЛ рдПрдХрд╛рдЪ рд╡реЗрд│реА рдЕрдиреЗрдХ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрджреНрд╡рд╛рд░реЗ рдЦреЗрд│рд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ:
    • TwitchPlayPokemon рд╕рд╛рд░рдЦреЗ рдХреНрд░рд╛рдЙрдбрдкреНрд▓реЗ, рдлрдХреНрдд рдЕрдзрд┐рдХ рдХреНрд░реЙрд╕-рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо рдЖрдгрд┐ рдЕрдзрд┐рдХ рд░рд┐рдЕрд▓-рдЯрд╛рдЗрдо
    • рдСрдлрд▓рд╛рдЗрди рдЧреЗрдо рдСрдирд▓рд╛рдЗрди. рдЕрдиреЗрдХ рд╡рд╛рдкрд░рдХрд░реНрддреЗ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрдЯ рди рдХрд░рддрд╛ рдЦреЗрд│реВ рд╢рдХрддрд╛рдд. рд╕рд╛рдореБрд░рд╛рдИ рд╢реЛрдбрд╛рдЙрди рдЖрддрд╛ рдХреНрд▓рд╛рдЙрдбрд░реЗрдЯреНрд░реЛ рдиреЗрдЯрд╡рд░реНрдХрд╡рд░ 2 рдЦреЗрд│рд╛рдбреВ рдЦреЗрд│реВ рд╢рдХрддрд╛рдд

    WebRTC рд╡рд░ рдореБрдХреНрдд рд╕реНрд░реЛрдд рдХреНрд▓рд╛рдЙрдб рдЧреЗрдорд┐рдВрдЧ: p2p, рдорд▓реНрдЯреАрдкреНрд▓реЗрдЕрд░, рд╢реВрдиреНрдп рд╡рд┐рд▓рдВрдм
    рд╡рд┐рд╡рд┐рдз рдЙрдкрдХрд░рдгрд╛рдВрд╡рд░ рдСрдирд▓рд╛рдЗрди рдорд▓реНрдЯреАрдкреНрд▓реЗрдЕрд░ рдЧреЗрдордЪреА рдбреЗрдореЛ рдЖрд╡реГрддреНрддреА

    рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛

    рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрдгрд┐ рддрдВрддреНрд░рдЬреНрдЮрд╛рди рд╕реНрдЯреЕрдХ

    рдЦрд╛рд▓реА рдореА рдкреНрд░рдХрд▓реНрдк рд╕реБрд░реВ рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА рд╕реЗрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдВрдЪреА рд╕реВрдЪреА рдЖрд╣реЗ.

    1. рдПрдХ рдЦреЗрд│рд╛рдбреВ
    рд╣реА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдпреЗрдереЗ рдлрд╛рд░рд╢реА рдорд╣рддреНрддреНрд╡рд╛рдЪреА рдХрд┐рдВрд╡рд╛ рд╕реНрдкрд╖реНрдЯ рд╡рд╛рдЯрдгрд╛рд░ рдирд╛рд╣реА, рдкрд░рдВрддреБ рддреА рдорд╛рдЭреНрдпрд╛ рдорд╣рддреНрддреНрд╡рд╛рдЪреНрдпрд╛ рдЙрдкрд╛рдпрд╛рдВрдкреИрдХреА рдПрдХ рдЖрд╣реЗ, рддреА рдХреНрд▓рд╛рдЙрдб рдЧреЗрдорд┐рдВрдЧрд▓рд╛ рдкрд╛рд░рдВрдкрд╛рд░рд┐рдХ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рд╕реЗрд╡рд╛рдВрдкрд╛рд╕реВрди рд╢рдХреНрдп рддрд┐рддрдХреНрдпрд╛ рджреВрд░ рд░рд╛рд╣рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ. рдЬрд░ рдЖрдореНрд╣реА рд╕рд┐рдВрдЧрд▓-рдкреНрд▓реЗрдЕрд░ рдЧреЗрдорд╡рд░ рд▓рдХреНрд╖ рдХреЗрдВрджреНрд░рд┐рдд рдХреЗрд▓реЗ рддрд░ рдЖрдореНрд╣реА рдХреЗрдВрджреНрд░реАрдХреГрдд рд╕рд░реНрд╡реНрд╣рд░ рдХрд┐рдВрд╡рд╛ рд╕реАрдбреАрдПрдирдкрд╛рд╕реВрди рдореБрдХреНрдд рд╣реЛрдК рд╢рдХрддреЛ рдХрд╛рд░рдг рдЖрдореНрд╣рд╛рд▓рд╛ рдЬрдирддреЗрдкрд░реНрдпрдВрдд рдкреНрд░рд╡рд╛рд╣рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдирд╛рд╣реА. рд╕рд┐рдВрдХ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдкреНрд░рд╡рд╛рд╣ рдЕрдкрд▓реЛрдб рдХрд░рдгреНрдпрд╛рдРрд╡рдЬреА рдХрд┐рдВрд╡рд╛ рдХреЗрдВрджреНрд░реАрдХреГрдд рд╡реЗрдмрд╕реЙрдХреЗрдЯ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдкреЕрдХреЗрдЯреНрд╕ рдкрд╛рд╕ рдХрд░рдгреНрдпрд╛рдРрд╡рдЬреА, рд╕реЗрд╡рд╛ рдкреНрд░рд╡рд╛рд╣ рдереЗрдЯ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд▓рд╛ рдкреАрдЕрд░-рдЯреВ-рдкреАрдЕрд░ WebRTC рдХрдиреЗрдХреНрд╢рдирджреНрд╡рд╛рд░реЗ рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд.

    2. рдХрдореА рд╡рд┐рд▓рдВрдм рдореАрдбрд┐рдпрд╛ рдкреНрд░рд╡рд╛рд╣
    Stadia рдмрджреНрджрд▓ рд╡рд╛рдЪрддрд╛рдирд╛, рдореА рдЕрдиреЗрдХрджрд╛ рдХрд╛рд╣реА рд▓реЗрдЦрд╛рдВрдордзреНрдпреЗ WebRTC рдЪрд╛ рдЙрд▓реНрд▓реЗрдЦ рдкрд╛рд╣рддреЛ. рдорд▓рд╛ рдЬрд╛рдгрд╡рд▓реЗ рдХреА WebRTC рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рддрдВрддреНрд░рдЬреНрдЮрд╛рди рдЖрд╣реЗ рдЖрдгрд┐ рдХреНрд▓рд╛рдЙрдб рдЧреЗрдорд┐рдВрдЧрдордзреНрдпреЗ рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА рдпреЛрдЧреНрдп рдЖрд╣реЗ. WebRTC рд╣рд╛ рдПрдХ рдкреНрд░рдХрд▓реНрдк рдЖрд╣реЗ рдЬреЛ рд╡реЗрдм рдмреНрд░рд╛рдЙрдЭрд░ рдЖрдгрд┐ рдореЛрдмрд╛рдИрд▓ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдирд╛ рд╕рд╛рдзреНрдпрд╛ API рджреНрд╡рд╛рд░реЗ рд░рд┐рдЕрд▓-рдЯрд╛рдЗрдо рдХрдореНрдпреБрдирд┐рдХреЗрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддреЛ. рд╣реЗ рдкреАрдЕрд░-рдЯреВ-рдкреАрдЕрд░ рдХрдиреЗрдХреНрдЯрд┐рд╡реНрд╣рд┐рдЯреА рдкреНрд░рджрд╛рди рдХрд░рддреЗ, рдореАрдбрд┐рдпрд╛рд╕рд╛рдареА рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХреЗрд▓реЗрд▓реЗ рдЖрд╣реЗ рдЖрдгрд┐ VP8 рдЖрдгрд┐ H264 рд╕рд╛рд░рдЦреЗ рдорд╛рдирдХ рдХреЛрдбреЗрдХреНрд╕ рдЕрдВрдЧрднреВрдд рдЖрд╣реЗрдд.

    рдЙрдЪреНрдЪ рджрд░реНрдЬрд╛рдЪреЗ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд░рд╛рдЦрдгреНрдпрд╛рдкреЗрдХреНрд╖рд╛ рд╕рд░реНрд╡реЛрддреНрддрдо рд╕рдВрднрд╛рд╡реНрдп рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдЕрдиреБрднрд╡ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдгреНрдпрд╛рд▓рд╛ рдореА рдкреНрд░рд╛рдзрд╛рдиреНрдп рджрд┐рд▓реЗ. рдЕрд▓реНрдЧреЛрд░рд┐рджрдордордзреНрдпреЗ рдХрд╛рд╣реА рдиреБрдХрд╕рд╛рди рд╕реНрд╡реАрдХрд╛рд░реНрдп рдЖрд╣реЗрдд. Google Stadia рдХрдбреЗ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░реАрд▓ рдЗрдореЗрдЬрдЪрд╛ рдЖрдХрд╛рд░ рдХрдореА рдХрд░рдгреНрдпрд╛рдЪрд╛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЯрдкреНрдкрд╛ рдЖрд╣реЗ рдЖрдгрд┐ рд╕рдорд╡рдпрд╕реНрдХрд╛рдВрдирд╛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА рдлреНрд░реЗрдореНрд╕ рдЙрдЪреНрдЪ рдЧреБрдгрд╡рддреНрддреЗрдкрд░реНрдпрдВрдд рд╡рд╛рдврд╡рд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд.

    3. рднреМрдЧреЛрд▓рд┐рдХ рд░рд╛рдЙрдЯрд┐рдВрдЧрд╕рд╣ рд╡рд┐рддрд░реАрдд рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛
    рдХреЙрдореНрдкреНрд░реЗрд╢рди рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рдЖрдгрд┐ рдХреЛрдб рдХрд┐рддреАрд╣реА рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХреЗрд▓реЗрд▓реЗ рдЕрд╕рд▓реЗ рддрд░реАрд╣реА, рдиреЗрдЯрд╡рд░реНрдХ рд╣рд╛ рдЕрдЬреВрдирд╣реА рдирд┐рд░реНрдгрд╛рдпрдХ рдШрдЯрдХ рдЖрд╣реЗ рдЬреЛ рд╡рд┐рд▓рдВрдмрддреЗрдордзреНрдпреЗ рд╕рд░реНрд╡рд╛рдд рдЬрд╛рд╕реНрдд рдпреЛрдЧрджрд╛рди рджреЗрддреЛ. рд░рд╛рдКрдВрдб-рдЯреНрд░рд┐рдк рдЯрд╛рдЗрдо (RTT) рдХрдореА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪреНрдпрд╛ рд╕рд░реНрд╡рд╛рдд рдЬрд╡рд│рдЪреНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд░рд▓рд╛ рдЬреЛрдбрдгреНрдпрд╛рд╕рд╛рдареА рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдордзреНрдпреЗ рдпрдВрддреНрд░рдгрд╛ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдордзреНрдпреЗ 1 рд╕рдордиреНрд╡рдпрдХ рдЖрдгрд┐ рдЬрдЧрднрд░рд╛рдд рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓реЗрд▓реЗ рдЕрдиреЗрдХ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рд╕рд░реНрд╡реНрд╣рд░ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ: рдпреВрдПрд╕ рдкрд╢реНрдЪрд┐рдо, рдпреВрдПрд╕ рдкреВрд░реНрд╡, рдпреБрд░реЛрдк, рд╕рд┐рдВрдЧрд╛рдкреВрд░, рдЪреАрди. рд╕рд░реНрд╡ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рд╕рд░реНрд╡реНрд╣рд░ рдкреВрд░реНрдгрдкрдгреЗ рд╡реЗрдЧрд│реЗ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдЬреЗрд╡реНрд╣рд╛ рд╕рд░реНрд╡реНрд╣рд░ рдиреЗрдЯрд╡рд░реНрдХрдордзреНрдпреЗ рд╕рд╛рдореАрд▓ рд╣реЛрддреЛ рдХрд┐рдВрд╡рд╛ рд╕реЛрдбрддреЛ рддреЗрд╡реНрд╣рд╛ рд╕рд┐рд╕реНрдЯрдо рддреНрдпрд╛рдЪреЗ рд╡рд┐рддрд░рдг рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░реВ рд╢рдХрддреЗ. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдореЛрдареНрдпрд╛ рд░рд╣рджрд╛рд░реАрд╕рд╣, рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд░реНрд╡реНрд╣рд░ рдЬреЛрдбрдгреЗ рдХреНрд╖реИрддрд┐рдЬ рд╕реНрдХреЗрд▓рд┐рдВрдЧрд╕рд╛рдареА рдЕрдиреБрдорддреА рджреЗрддреЗ.

    4. рдмреНрд░рд╛рдЙрдЭрд░ рд╕реБрд╕рдВрдЧрддрддрд╛
    рдЬреЗрд╡реНрд╣рд╛ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдХрдбреВрди рдХрдореАрддрдХрдореА рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рддреЗ рддреЗрд╡реНрд╣рд╛ рдХреНрд▓рд╛рдЙрдб рдЧреЗрдорд┐рдВрдЧ рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрд╕рддреЗ. рдпрд╛рдЪрд╛ рдЕрд░реНрде рдмреНрд░рд╛рдЙрдЭрд░рдордзреНрдпреЗ рдЪрд╛рд▓рд╡рдгреЗ рд╢рдХреНрдп рдЖрд╣реЗ. рдмреНрд░рд╛рдЙрдЭрд░ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрд╕рд╛рдареА рдЧреЗрдорд┐рдВрдЧ рдЕрдиреБрднрд╡ рд╢рдХреНрдп рддрд┐рддрдХреЗ рдЖрд░рд╛рдорджрд╛рдпрдХ рдмрдирд╡рд┐рдгреНрдпрд╛рдд рдорджрдд рдХрд░рддрд╛рдд, рддреНрдпрд╛рдВрдирд╛ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдЖрдгрд┐ рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рдкрд╛рд╕реВрди рд╡рд╛рдЪрд╡рддрд╛рдд. рдмреНрд░рд╛рдЙрдЭрд░ рдореЛрдмрд╛рдЗрд▓ рдЖрдгрд┐ рдбреЗрд╕реНрдХрдЯреЙрдк рдЖрд╡реГрддреНрддреНрдпрд╛рдВрдордзреНрдпреЗ рдХреНрд░реЙрд╕-рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдгреНрдпрд╛рдд рджреЗрдЦреАрд▓ рдорджрдд рдХрд░рддрд╛рдд. рд╕реБрджреИрд╡рд╛рдиреЗ, WebRTC рд╡рд┐рд╡рд┐рдз рдмреНрд░рд╛рдЙрдЭрд░рд╡рд░ рдЪрд╛рдВрдЧрд▓реЗ рд╕рдорд░реНрдерд┐рдд рдЖрд╣реЗ.

    5. рдЧреЗрдо рдЗрдВрдЯрд░рдлреЗрд╕ рдЖрдгрд┐ рд╕реЗрд╡реЗрдЪреЗ рд╕реНрдкрд╖реНрдЯ рдкреГрдердХреНрдХрд░рдг
    рдореА рдХреНрд▓рд╛рдЙрдб рдЧреЗрдорд┐рдВрдЧ рд╕реЗрд╡реЗрд▓рд╛ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо рдореНрд╣рдгреВрди рдкрд╛рд╣рддреЛ. рдкреНрд░рддреНрдпреЗрдХрд╛рд▓рд╛ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╢реА рдХрд╛рд╣реАрд╣реА рдЬреЛрдбрддрд╛ рдЖрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ. рдЖрддрд╛ рдореА рдПрдХреАрдХрд░рдг рдХреЗрд▓реЗ рдЖрд╣реЗ рд▓рд┐рдмреНрд░реЗрдЯреНрд░реЛ рдХреНрд▓рд╛рдЙрдб рдЧреЗрдорд┐рдВрдЧ рд╕реЗрд╡реЗрд╕рд╣ рдХрд╛рд░рдг LibRetro SNES, GBA, PS рд╕рд╛рд░рдЦреНрдпрд╛ рд░реЗрдЯреНрд░реЛ рдЧреЗрдорд╕рд╛рдареА рдПрдХ рд╕реБрдВрджрд░ рдЧреЗрдо рдПрдореБрд▓реЗрдЯрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рджреЗрддреЗ.

    6. рдЧреЗрдорд╕рд╣ рдорд▓реНрдЯреАрдкреНрд▓реЗрдЕрд░, рдХреНрд░рд╛рдЙрдб рдкреНрд▓реЗ рдЖрдгрд┐ рдПрдХреНрд╕рдЯрд░реНрдирд▓ рд▓рд┐рдВрдХрд┐рдВрдЧ (рдбреАрдк-рд▓рд┐рдВрдХ) рд╕рд╛рдареА рдЦреЛрд▓реНрдпрд╛
    рдХреНрд▓рд╛рдЙрдбрд░реЗрдЯреНрд░реЛ рд░реЗрдЯреНрд░реЛ рдЧреЗрдорд╕рд╛рдареА рдХреНрд░рд╛рдЙрдбрдкреНрд▓реЗ рдЖрдгрд┐ рдСрдирд▓рд╛рдЗрди рдорд▓реНрдЯреАрдкреНрд▓реЗрдЕрд░ рд╕рд╛рд░рдЦреНрдпрд╛ рдЕрдиреЗрдХ рдирд╡реАрди рдЧреЗрдордкреНрд▓реЗрд▓рд╛ рд╕рдкреЛрд░реНрдЯ рдХрд░рддреЗ. рдЬрд░ рдЕрдиреЗрдХ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдиреА рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рд╕рдВрдЧрдгрдХрд╛рдВрд╡рд░ рд╕рдорд╛рди рдбреАрдк-рд▓рд┐рдВрдХ рдЙрдШрдбрд▓реА, рддрд░ рддреНрдпрд╛рдВрдирд╛ рддреЛрдЪ рдЧреЗрдо рдЪрд╛рд▓рддрд╛рдирд╛ рджрд┐рд╕реЗрд▓ рдЖрдгрд┐ рддреЗ рддреНрдпрд╛рдд рд╕рд╛рдореАрд▓ рд╣реЛрдК рд╢рдХрддреАрд▓.

    рд╢рд┐рд╡рд╛рдп, рдЧреЗрдо рд╕реНрдЯреЗрдЯрд╕ рдХреНрд▓рд╛рдЙрдб рд╕реНрдЯреЛрд░реЗрдЬрдордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд. рд╣реЗ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдирд╛ рдЗрддрд░ рдХреЛрдгрддреНрдпрд╛рд╣реА рдбрд┐рд╡реНрд╣рд╛рдЗрд╕рд╡рд░ рдХрдзреАрд╣реА рдкреНрд▓реЗ рдХрд░рдгреЗ рд╕реБрд░реВ рдареЗрд╡рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ.

    7. рдХреНрд╖реИрддрд┐рдЬ рд╕реНрдХреЗрд▓рд┐рдВрдЧ
    рдЖрдЬрдХрд╛рд▓ рдХреЛрдгрддреНрдпрд╛рд╣реА SAAS рдкреНрд░рдорд╛рдгреЗ, рдХреНрд▓рд╛рдЙрдб рдЧреЗрдорд┐рдВрдЧ рдХреНрд╖реИрддрд┐рдЬрд░рд┐рддреНрдпрд╛ рд╕реНрдХреЗрд▓реЗрдмрд▓ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗрд▓реЗ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рд╕рдордиреНрд╡рдпрдХ-рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдбрд┐рдЭрд╛рдЗрди рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдЕрдзрд┐рдХ рд░рд╣рджрд╛рд░реА рд╕реЗрд╡рд╛ рджреЗрдгреНрдпрд╛рд╕рд╛рдареА рдЕрдзрд┐рдХ рдХрд╛рдордЧрд╛рд░ рдЬреЛрдбрдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ.

    8. рдПрдХрд╛ рдХреНрд▓рд╛рдЙрдбрд╢реА рдХрдиреЗрдХреНрд╢рди рдирд╛рд╣реА
    рдХреНрд▓рд╛рдЙрдбрд░реЗрдЯреНрд░реЛрдЪреА рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдкреНрд░рджреЗрд╢рд╛рдВрд╕рд╛рдареА рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рддреНрдпрд╛рдВрд╡рд░ (рдбрд┐рдЬрд┐рдЯрд▓ рдУрд╢рди, рдЕрд▓рд┐рдмрд╛рдмрд╛, рдХрд╕реНрдЯрдо рдкреНрд░рджрд╛рддрд╛) рд╣реЛрд╕реНрдЯ рдХреЗрд▓реЗрд▓реА рдЖрд╣реЗ. рдореА рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛рдВрд╕рд╛рдареА рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░рдордзреНрдпреЗ рдЪрд╛рд▓рдгреЗ рд╕рдХреНрд╖рдо рдХрд░рддреЛ рдЖрдгрд┐ рдПрдХрд╛рдЪ рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рддреНрдпрд╛рдордзреНрдпреЗ рд▓реЙрдХ рд╣реЛрдК рдирдпреЗ рдореНрд╣рдгреВрди рдмреЕрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд╛рдкрд░реВрди рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рддреЛ. рд╣реЗ WebRTC рдордзреАрд▓ NAT рдЯреНрд░реЕрд╡реНрд╣рд░реНрд╕рд▓рд╕рд╣ рдПрдХрддреНрд░рд┐рдд рдХрд░реВрди, рдЖрдореНрд╣рд╛рд▓рд╛ рдХреЛрдгрддреНрдпрд╛рд╣реА рдХреНрд▓рд╛рдЙрдб рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░ рдЖрдгрд┐ рдЕрдЧрджреА рдХреЛрдгрддреНрдпрд╛рд╣реА рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪреНрдпрд╛ рдорд╢реАрдирд╡рд░ рдХреНрд▓рд╛рдЙрдбрд░реЗрдЯреНрд░реЛ рддреИрдирд╛рдд рдХрд░рдгреНрдпрд╛рдЪреА рд▓рд╡рдЪрд┐рдХрддрд╛ рдЕрд╕реВ рд╢рдХрддреЗ.

    рд╡рд╛рд╕реНрддреБрдХрд▓реЗрдЪрд╛ рдЖрд░рд╛рдЦрдбрд╛

    рдХрд╛рдордЧрд╛рд░: (рдХрд┐рдВрд╡рд╛ рд╡рд░ рдирдореВрдж рдХреЗрд▓реЗрд▓рд╛ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рд╕рд░реНрд╡реНрд╣рд░) рдЧреЗрдо рдЧреБрдгрд╛рдХрд╛рд░ рдХрд░рддреЛ, рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЪрд╛рд▓рд╡рддреЛ рдЖрдгрд┐ рдПрдиреНрдХреЛрдб рдХреЗрд▓реЗрд▓рд╛ рдореАрдбрд┐рдпрд╛ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдирд╛ рдкреНрд░рд╡рд╛рд╣рд┐рдд рдХрд░рддреЛ. рдХрд╛рдордЧрд╛рд░ рдЙрджрд╛рд╣рд░рдгреЗ рдЬрдЧрднрд░рд╛рдд рд╡рд┐рддрд░реАрдд рдХреЗрд▓реА рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдПрдХрд╛рдЪ рд╡реЗрд│реА рдЕрдиреЗрдХ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рд╕рддреНрд░реЗ рд╣рд╛рддрд╛рд│реВ рд╢рдХрддреЛ.

    рд╕рдордиреНрд╡рдпрдХ: рдирд╡реАрди рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд▓рд╛ рдкреНрд░рд╡рд╛рд╣рд╛рд╕рд╛рдареА рд╕рд░реНрд╡рд╛рдд рдпреЛрдЧреНрдп рдХрд╛рд░реНрдпрдХрд░реНрддреНрдпрд╛рд╕рд╣ рдЬреЛрдбрдгреНрдпрд╛рд╕рд╛рдареА рдЬрдмрд╛рдмрджрд╛рд░ рдЖрд╣реЗ. рд╕рдордиреНрд╡рдпрдХ рд╡реЗрдмрд╕реЙрдХреЗрдЯрджреНрд╡рд╛рд░реЗ рдХрд╛рдордЧрд╛рд░рд╛рдВрд╢реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрддреЛ.

    рдЧреЗрдо рд╕реНрдЯреЗрдЯ рд╕реНрдЯреЛрд░реЗрдЬ: рд╕рд░реНрд╡ рдЧреЗрдо рд░рд╛рдЬреНрдпрд╛рдВрд╕рд╛рдареА рдХреЗрдВрджреНрд░реАрдп рд░рд┐рдореЛрдЯ рд╕реНрдЯреЛрд░реЗрдЬ. рд╣реЗ рд╕реНрдЯреЛрд░реЗрдЬ рд░рд┐рдореЛрдЯ рд╕реЗрд╡реНрд╣/рд▓реЛрдб рд╕рд╛рд░рдЦреА рдорд╣рддреНрддреНрд╡рд╛рдЪреА рдХрд╛рд░реНрдпреЗ рдкреБрд░рд╡рддреЗ.

    WebRTC рд╡рд░ рдореБрдХреНрдд рд╕реНрд░реЛрдд рдХреНрд▓рд╛рдЙрдб рдЧреЗрдорд┐рдВрдЧ: p2p, рдорд▓реНрдЯреАрдкреНрд▓реЗрдЕрд░, рд╢реВрдиреНрдп рд╡рд┐рд▓рдВрдм
    рдХреНрд▓рд╛рдЙрдбрд░реЗрдЯреНрд░реЛрдЪреЗ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░

    рд╕рд╛рдиреБрдХреВрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ

    рдЬреЗрд╡реНрд╣рд╛ рдПрдЦрд╛рджрд╛ рдирд╡реАрди рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдЦрд╛рд▓реАрд▓ рдЖрдХреГрддреАрдордзреНрдпреЗ рджрд░реНрд╢рд╡рд┐рд▓реЗрд▓реНрдпрд╛ рдЪрд░рдг 1 рдЖрдгрд┐ 2 рдордзреНрдпреЗ рдХреНрд▓рд╛рдЙрдбрд░реЗрдЯреНрд░реЛ рдЙрдШрдбрддреЛ, рддреЗрд╡реНрд╣рд╛ рдЙрдкрд▓рдмреНрдз рдХрд╛рдордЧрд╛рд░рд╛рдВрдЪреНрдпрд╛ рд╕реВрдЪреАрд╕рд╣ рд╕рдордиреНрд╡рдпрдХрд╛рд▓рд╛ рдкрд╣рд┐рд▓реНрдпрд╛ рдкреГрд╖реНрдард╛рд╡рд░ рд╡рд┐рдирдВрддреА рдХреЗрд▓реА рдЬрд╛рддреЗ. рдпрд╛рдирдВрддрд░, рдЪрд░рдг 3 рдордзреНрдпреЗ рдХреНрд▓рд╛рдпрдВрдЯ HTTP рдкрд┐рдВрдЧ рд╡рд┐рдирдВрддреА рд╡рд╛рдкрд░реВрди рд╕рд░реНрд╡ рдЙрдореЗрджрд╡рд╛рд░рд╛рдВрд╕рд╛рдареА рд╡рд┐рд▓рдВрдм рдореЛрдЬрддреЛ. рд╡рд┐рд▓рдВрдмрд╛рдВрдЪреА рд╣реА рдпрд╛рджреА рдирдВрддрд░ рд╕рдордиреНрд╡рдпрдХрд╛рдХрдбреЗ рдкрд░рдд рдкрд╛рдард╡рд▓реА рдЬрд╛рддреЗ рдЬреЗрдгреЗрдХрд░реВрди рддреЛ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд▓рд╛ рд╕реЗрд╡рд╛ рджреЗрдгреНрдпрд╛рд╕рд╛рдареА рд╕рд░реНрд╡рд╛рдд рдпреЛрдЧреНрдп рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдард░рд╡реВ рд╢рдХреЗрд▓. рдЦрд╛рд▓реАрд▓ рдЪрд░рдг 4 рдЧреЗрдо рддрдпрд╛рд░ рдХрд░рддреЗ. рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдЖрдгрд┐ рдирд┐рдпреБрдХреНрдд рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдпрд╛рдВрдЪреНрдпрд╛рдд WebRTC рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ.
    WebRTC рд╡рд░ рдореБрдХреНрдд рд╕реНрд░реЛрдд рдХреНрд▓рд╛рдЙрдб рдЧреЗрдорд┐рдВрдЧ: p2p, рдорд▓реНрдЯреАрдкреНрд▓реЗрдЕрд░, рд╢реВрдиреНрдп рд╡рд┐рд▓рдВрдм
    рдкреНрд░рд╡реЗрд╢ рдорд┐рд│рд╛рд▓реНрдпрд╛рдирдВрддрд░ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ

    рдХрд╛рд░реНрдпрдХрд░реНрддреНрдпрд╛рдЪреНрдпрд╛ рдЖрдд рдХрд╛рдп рдЖрд╣реЗ

    рдЧреЗрдо рдЖрдгрд┐ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХрд╛рдордЧрд╛рд░рд╛рдВрдЪреНрдпрд╛ рдЖрдд рдЕрд▓рдЧрд╛рд╡рдордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рдЗрдВрдЯрд░рдлреЗрд╕рджреНрд╡рд╛рд░реЗ рдорд╛рд╣рд┐рддреАрдЪреА рджреЗрд╡рд╛рдгрдШреЗрд╡рд╛рдг рдХрд░рддрд╛рдд. рд╕рдзреНрдпрд╛, рд╣реЗ рд╕рдВрдкреНрд░реЗрд╖рдг рдореЗрдорд░реАрдордзреНрдпреЗ рдбреЗрдЯрд╛ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░реВрди рдЪрд╛рд▓рддреЗ рдЧреЛрд▓рдВрдЧ рд╡рд╛рд╣рд┐рдиреНрдпрд╛ рддреНрдпрд╛рдЪ рдкреНрд░рдХреНрд░рд┐рдпреЗрдд. рдкреБрдвреАрд▓ рдзреНрдпреЗрдп рд╡реЗрдЧрд│реЗ рдХрд░рдгреЗ рдЖрд╣реЗ, рдореНрд╣рдгрдЬреЗ. рджреБрд╕рд░реНтАНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрдд рдЧреЗрдордЪреЗ рд╕реНрд╡рддрдВрддреНрд░ рдкреНрд░рдХреНрд╖реЗрдкрдг.

    WebRTC рд╡рд░ рдореБрдХреНрдд рд╕реНрд░реЛрдд рдХреНрд▓рд╛рдЙрдб рдЧреЗрдорд┐рдВрдЧ: p2p, рдорд▓реНрдЯреАрдкреНрд▓реЗрдЕрд░, рд╢реВрдиреНрдп рд╡рд┐рд▓рдВрдм
    рдХрд╛рдордЧрд╛рд░ рдШрдЯрдХрд╛рдВрдЪрд╛ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рдж

    рдореБрдЦреНрдп рдШрдЯрдХ:

    • WebRTC: рдПрдХ рдХреНрд▓рд╛рдпрдВрдЯ рдШрдЯрдХ рдЬреЛ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рд╕реНрд╡реАрдХрд╛рд░рддреЛ рдЖрдгрд┐ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░реВрди рдПрдиреНрдХреЛрдбреЗрдб рдореАрдбрд┐рдпрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддреЛ.
    • рдЧреЗрдо рдПрдореБрд▓реЗрдЯрд░: рдЦреЗрд│ рдШрдЯрдХ. рд▓рд┐рдмреНрд░реЗрдЯреНрд░реЛ рд▓рд╛рдпрдмреНрд░рд░реАрдмрджреНрджрд▓ рдзрдиреНрдпрд╡рд╛рдж, рд╕рд┐рд╕реНрдЯрдо рд╕рдорд╛рди рдкреНрд░рдХреНрд░рд┐рдпреЗрдордзреНрдпреЗ рдЧреЗрдо рдЪрд╛рд▓рд╡рд┐рдгреНрдпрд╛рд╕ рд╕рдХреНрд╖рдо рдЖрд╣реЗ рдЖрдгрд┐ рдореАрдбрд┐рдпрд╛ рдЖрдгрд┐ рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░реАрдордордзреНрдпреЗ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░реВ рд╢рдХрддреЗ.
    • рдЗрди-рдЧреЗрдо рдлреНрд░реЗрдореНрд╕ рдХреЕрдкреНрдЪрд░ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рдПрдиреНрдХреЛрдбрд░рд▓рд╛ рдкрд╛рдард╡рд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд.
    • рдЗрдореЗрдЬ/рдСрдбрд┐рдУ рдПрдиреНрдХреЛрдбрд░: рдПрдХ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЬреА рдореАрдбрд┐рдпрд╛ рдлреНрд░реЗрдореНрд╕ рдШреЗрддреЗ, рддреНрдпрд╛рдВрдирд╛ рдмреЕрдХрдЧреНрд░рд╛рдЙрдВрдбрдордзреНрдпреЗ рдПрдиреНрдХреЛрдб рдХрд░рддреЗ рдЖрдгрд┐ рдПрдиреНрдХреЛрдб рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЗрдореЗрдЬ/рдСрдбрд┐рдУ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддреЗ.

    рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА

    CloudRetro рд╣реЗ WebRTC рд╡рд░ рддреНрдпрд╛рдЪреЗ рдЖрдзрд╛рд░рднреВрдд рддрдВрддреНрд░рдЬреНрдЮрд╛рди рдореНрд╣рдгреВрди рдЕрд╡рд▓рдВрдмреВрди рдЖрд╣реЗ, рддреНрдпрд╛рдореБрд│реЗ Golang рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреНрдпрд╛ рддрдкрд╢реАрд▓рд╛рдВрдордзреНрдпреЗ рдЬрд╛рдгреНрдпрд╛рдкреВрд░реНрд╡реА, рдореА WebRTC рдмрджреНрджрд▓рдЪ рдмреЛрд▓рд╛рдпрдЪреЗ рдард░рд╡рд▓реЗ. рд╣реЗ рдЖрд╢реНрдЪрд░реНрдпрдХрд╛рд░рдХ рддрдВрддреНрд░рдЬреНрдЮрд╛рди рдЖрд╣реЗ рдЬреНрдпрд╛рдиреЗ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдбреЗрдЯрд╛рд╕рд╛рдареА рд╕рдм-рд╕реЗрдХрдВрдб рд▓реЗрдЯрдиреНрд╕реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреНрдпрд╛рдд рдорд▓рд╛ рдЦреВрдк рдорджрдд рдХреЗрд▓реА рдЖрд╣реЗ.

    WebRTC

    WebRTC рд╣реЗ рд╕рд╛рдзреЗ API рд╡рд╛рдкрд░реВрди рдореВрд│ рдореЛрдмрд╛рдЗрд▓ рдЕреЕрдкреНрд╕ рдЖрдгрд┐ рдмреНрд░рд╛рдЙрдЭрд░рд╡рд░ рдЙрдЪреНрдЪ-рдЧреБрдгрд╡рддреНрддреЗрдЪреЗ рдкреАрдЕрд░-рдЯреВ-рдкреАрдЕрд░ рдХрдиреЗрдХреНрд╢рди рдкреНрд░рджрд╛рди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗрд▓реЗ рдЖрд╣реЗ.

    NAT рдЯреНрд░реЕрд╡реНрд╣рд░реНрд╕рд▓

    WebRTC рддреНрдпрд╛рдЪреНрдпрд╛ NAT рдЯреНрд░реЕрд╡реНрд╣рд░реНрд╕рд▓ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрд╕рд╛рдареА рдУрд│рдЦрд▓реЗ рдЬрд╛рддреЗ. WebRTC рд╣реЗ рдкреАрдЕрд░-рдЯреВ-рдкреАрдЕрд░ рдХрдореНрдпреБрдирд┐рдХреЗрд╢рдирд╕рд╛рдареА рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗрд▓реЗ рдЖрд╣реЗ. рдирд╛рд╡рд╛рдЪреНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрджреНрд╡рд╛рд░реЗ рдкреАрдЕрд░-рдЯреВ-рдкреАрдЕрд░ рдХрдореНрдпреБрдирд┐рдХреЗрд╢рдирд╕рд╛рдареА NAT рдЧреЗрдЯрд╡реЗ рдЖрдгрд┐ рдлрд╛рдпрд░рд╡реЙрд▓ рдЯрд╛рд│реВрди рд╕рд░реНрд╡рд╛рдд рдпреЛрдЧреНрдп рдереЗрдЯ рдорд╛рд░реНрдЧ рд╢реЛрдзрдгреЗ рд╣реЗ рддреНрдпрд╛рдЪреЗ рдзреНрдпреЗрдп рдЖрд╣реЗ. рдмрд░реНрдл. рдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪрд╛ рдПрдХ рднрд╛рдЧ рдореНрд╣рдгреВрди, WebRTC API STUN рд╕рд░реНрд╡реНрд╣рд░ рд╡рд╛рдкрд░реВрди рддреБрдордЪрд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ IP рдкрддреНрддрд╛ рд╢реЛрдзрддрд╛рдд рдЖрдгрд┐ рддреЛ рд░рд┐рд▓реЗ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдлреЙрд░рд╡рд░реНрдб рдХрд░рддрд╛рдд (рд╡рд│рдг) рдЬреЗрд╡реНрд╣рд╛ рдереЗрдЯ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрдд рдирд╛рд╣реА.

    рддрдерд╛рдкрд┐, рдХреНрд▓рд╛рдЙрдбрд░реЗрдЯреНрд░реЛ рдпрд╛ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдЪрд╛ рдкреВрд░реНрдгрдкрдгреЗ рдЙрдкрдпреЛрдЧ рдХрд░рдд рдирд╛рд╣реА. рддреНрдпрд╛рдЪреЗ рдкреАрдЕрд░-рдЯреВ-рдкреАрдЕрд░ рдХрдиреЗрдХреНрд╢рди рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдордзреНрдпреЗ рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдирд╛рд╣реАрдд, рдкрд░рдВрддреБ рд╡рд╛рдкрд░рдХрд░реНрддреЗ рдЖрдгрд┐ рдХреНрд▓рд╛рдЙрдб рд╕рд░реНрд╡реНрд╣рд░рдордзреНрдпреЗ рдЖрд╣реЗрдд. рдореЙрдбреЗрд▓рдЪреНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд░ рдмрд╛рдЬреВрд╡рд░ рд╕рд╛рдорд╛рдиреНрдп рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдЙрдкрдХрд░рдгрд╛рдкреЗрдХреНрд╖рд╛ рдХрдореА рдереЗрдЯ рд╕рдВрдкреНрд░реЗрд╖рдг рдирд┐рд░реНрдмрдВрдз рдЖрд╣реЗрдд. рд╣реЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдЗрдирдХрдорд┐рдВрдЧ рдкреЛрд░реНрдЯреНрд╕ рдкреНрд░реА-рдУрдкрди рдХрд░рдгреНрдпрд╛рд╕ рдХрд┐рдВрд╡рд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ IP рдкрддреНрддреЗ рдереЗрдЯ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ, рдХрд╛рд░рдг рд╕рд░реНрд╡реНрд╣рд░ NAT рдЪреНрдпрд╛ рдорд╛рдЧреЗ рдирд╛рд╣реА.

    рдкреВрд░реНрд╡реА, рдорд▓рд╛ рдХреНрд▓рд╛рдЙрдб рдЧреЗрдорд┐рдВрдЧрд╕рд╛рдареА рдкреНрд░реЛрдЬреЗрдХреНрдЯрд▓рд╛ рдЧреЗрдо рд╡рд┐рддрд░рдг рдкреНрд▓реЕрдЯрдлреЙрд░реНрдордордзреНрдпреЗ рдмрджрд▓рд╛рдпрдЪреЗ рд╣реЛрддреЗ. рдЧреЗрдо рдирд┐рд░реНрдорд╛рддреНрдпрд╛рдВрдирд╛ рдЧреЗрдо рдЖрдгрд┐ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рд╕рдВрд╕рд╛рдзрдиреЗ рдкреНрд░рджрд╛рди рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрдгреНрдпрд╛рдЪреА рдХрд▓реНрдкрдирд╛ рд╣реЛрддреА. рдЖрдгрд┐ рд╡рд╛рдкрд░рдХрд░реНрддреЗ рдереЗрдЯ рдкреНрд░рджрд╛рддреНрдпрд╛рдВрд╢реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрддреАрд▓. рдпрд╛ рд╡рд┐рдХреЗрдВрджреНрд░рд┐рдд рдкрджреНрдзрддреАрдиреЗ, рдХреНрд▓рд╛рдЙрдбрд░реЗрдЯреНрд░реЛ рд╣реА рдХреЗрд╡рд│ рддреГрддреАрдп-рдкрдХреНрд╖ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рд╕рдВрд╕рд╛рдзрдиреЗ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдирд╛ рдЬреЛрдбрдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рдлреНрд░реЗрдорд╡рд░реНрдХ рдЖрд╣реЗ, рдЬреЗ рдпрд╛рдкреБрдвреЗ рд╣реЛрд╕реНрдЯ рдХреЗрд▓реЗрд▓реЗ рдирд╕рддрд╛рдирд╛ рддреЗ рдЕрдзрд┐рдХ рд╕реНрдХреЗрд▓реЗрдмрд▓ рдмрдирд╡рддреЗ. рддреГрддреАрдп-рдкрдХреНрд╖ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рд╕рдВрд╕рд╛рдзрдирд╛рдВрд╡рд░ рдкреАрдЕрд░-рдЯреВ-рдкреАрдЕрд░ рдХрдиреЗрдХреНрд╢рди рдЗрдирд┐рд╢рд┐рдПрд▓рд╛рдпрдЭреЗрд╢рди рд╕реБрд▓рдн рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдпреЗрдереЗ WebRTC NAT рдЯреНрд░реЕрд╡реНрд╣рд░реНрд╕рд▓рдЪреА рднреВрдорд┐рдХрд╛ рдЕрддрд┐рд╢рдп рдорд╣рддреНрддреНрд╡рд╛рдЪреА рдЖрд╣реЗ, рдЬреНрдпрд╛рдореБрд│реЗ рдирд┐рд░реНрдорд╛рддреНрдпрд╛рд▓рд╛ рдиреЗрдЯрд╡рд░реНрдХрд╢реА рдХрдиреЗрдХреНрдЯ рдХрд░рдгреЗ рд╕реЛрдкреЗ рд╣реЛрдИрд▓.

    рд╡реНрд╣рд┐рдбрд┐рдУ рдХреЙрдореНрдкреНрд░реЗрд╢рди

    рд╡реНрд╣рд┐рдбрд┐рдУ рдХреЙрдореНрдкреНрд░реЗрд╢рди рд╣рд╛ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдЪрд╛ рдПрдХ рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рднрд╛рдЧ рдЖрд╣реЗ рдЖрдгрд┐ рд╕реБрд░рд│реАрдд рдкреНрд░рд╡рд╛рд╣рд╛рдд рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдпреЛрдЧрджрд╛рди рджреЗрддреЗ. VP8/H264 рд╡реНрд╣рд┐рдбрд┐рдУ рдПрдиреНрдХреЛрдбрд┐рдВрдЧрдЪреЗ рдкреНрд░рддреНрдпреЗрдХ рддрдкрд╢реАрд▓ рдЬрд╛рдгреВрди рдШреЗрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдирд╕рд▓реЗ рддрд░реА, рд╕рдВрдХрд▓реНрдкрдирд╛ рд╕рдордЬреВрди рдШреЗрдгреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рд╡реНрд╣рд┐рдбрд┐рдУ рдЧрддреА рдкрд░реНрдпрд╛рдп рд╕рдордЬрдгреНрдпрд╛рд╕, рдЕрдирдкреЗрдХреНрд╖рд┐рдд рд╡рд░реНрддрди рдбреАрдмрдЧ рдХрд░рдгреЗ рдЖрдгрд┐ рд╡рд┐рд▓рдВрдм рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдгреНрдпрд╛рдд рдорджрдд рдХрд░реВ рд╢рдХрддреЗ.

    рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рд╕реЗрд╡реЗрд╕рд╛рдареА рд╡реНрд╣рд┐рдбрд┐рдУ рдХреЙрдореНрдкреНрд░реЗрд╕ рдХрд░рдгреЗ рдЖрд╡реНрд╣рд╛рдирд╛рддреНрдордХ рдЖрд╣реЗ рдХрд╛рд░рдг рдЕрд▓реНрдЧреЛрд░рд┐рджрдордиреЗ рдЦрд╛рддреНрд░реА рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдХреА рдПрдХреВрдг рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╡реЗрд│ + рдиреЗрдЯрд╡рд░реНрдХ рдЯреНрд░рд╛рдиреНрд╕рдорд┐рд╢рди рд╡реЗрд│ + рдбреАрдХреЛрдбрд┐рдВрдЧ рд╡реЗрд│ рд╢рдХреНрдп рддрд┐рддрдХрд╛ рдХрдореА рдЖрд╣реЗ. рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдХреЛрдбрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рд╛рддрддреНрдпрдкреВрд░реНрдг рдЖрдгрд┐ рд╕рддрдд рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдХрд╛рд╣реА рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдЯреНрд░реЗрдбрдСрдл рд▓рд╛рдЧреВ рд╣реЛрдд рдирд╛рд╣реАрддтАФрдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЖрдореНрд╣реА рд▓рд╣рд╛рди рдлрд╛рдИрд▓ рдЖрдХрд╛рд░ рдЖрдгрд┐ рдбреАрдХреЛрдбрд┐рдВрдЧ рд╡реЗрд│реЗрдкреЗрдХреНрд╖рд╛ рд▓рд╛рдВрдм рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╡реЗрд│рд╛ рдкрд╕рдВрдд рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА рдХрд┐рдВрд╡рд╛ рд╡рд┐рд╕рдВрдЧрдд рдХреЙрдореНрдкреНрд░реЗрд╢рди рд╡рд╛рдкрд░реВ рд╢рдХрдд рдирд╛рд╣реА.

    рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрд╕рд╛рдареА рдЕрдЪреВрдХрддреЗрдЪреА рд╕реНрд╡реАрдХрд╛рд░реНрдп рдкрд╛рддрд│реА рд░рд╛рдЦреВрди рдорд╛рд╣рд┐рддреАрдЪреЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдмрд┐рдЯ рдХрд╛рдвреВрди рдЯрд╛рдХрдгреЗ рд╣реА рд╡реНрд╣рд┐рдбрд┐рдУ рдХреЙрдореНрдкреНрд░реЗрд╢рдирдЪреА рдХрд▓реНрдкрдирд╛ рдЖрд╣реЗ. рд╡реИрдпрдХреНрддрд┐рдХ рд╕реНрдерд┐рд░ рдкреНрд░рддрд┐рдорд╛ рдлреНрд░реЗрдореНрд╕ рдПрдиреНрдХреЛрдб рдХрд░рдгреНрдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рдорд╛рдЧреАрд▓ рдЖрдгрд┐ рдкреБрдвреАрд▓ рдлреНрд░реЗрдордордзреВрди рд╡рд░реНрддрдорд╛рди рдлреНрд░реЗрдордЪрд╛ рдЕрдВрджрд╛рдЬ рд▓рд╛рд╡рддреЛ, рдореНрд╣рдгреВрди рдлрдХреНрдд рддреНрдпрд╛рдВрдЪреНрдпрд╛рддреАрд▓ рдлрд░рдХ рдкрд╛рдард╡рд┐рд▓рд╛ рдЬрд╛рддреЛ. Pacman рд╕рд╣ рдЙрджрд╛рд╣рд░рдгрд╛рд╡рд░реВрди рдкрд╛рд╣рд┐рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ, рдлрдХреНрдд рд╡рд┐рднреЗрджрдХ рдмрд┐рдВрджреВ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд.

    WebRTC рд╡рд░ рдореБрдХреНрдд рд╕реНрд░реЛрдд рдХреНрд▓рд╛рдЙрдб рдЧреЗрдорд┐рдВрдЧ: p2p, рдорд▓реНрдЯреАрдкреНрд▓реЗрдЕрд░, рд╢реВрдиреНрдп рд╡рд┐рд▓рдВрдм
    рдЙрджрд╛рд╣рд░рдг рдореНрд╣рдгреВрди рдкреЕрдХрдорди рд╡рд╛рдкрд░реВрди рд╡реНрд╣рд┐рдбрд┐рдУ рдлреНрд░реЗрдордЪреА рддреБрд▓рдирд╛

    рдСрдбрд┐рдУ рдХреЙрдореНрдкреНрд░реЗрд╢рди

    рддреНрдпрд╛рдЪрдкреНрд░рдорд╛рдгреЗ, рдСрдбрд┐рдУ рдХреЙрдореНрдкреНрд░реЗрд╢рди рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рдбреЗрдЯрд╛ рд╡рдЧрд│рддреЛ рдЬреЛ рдорд╛рдирд╡рд╛рдВрдирд╛ рд╕рдордЬреВ рд╢рдХрдд рдирд╛рд╣реА. Opus рд╕рдзреНрдпрд╛ рд╕рд░реНрд╡реЛрддреНрддрдо рдХрд╛рдордЧрд┐рд░реА рдХрд░рдгрд╛рд░рд╛ рдСрдбрд┐рдУ рдХреЛрдбреЗрдХ рдЖрд╣реЗ. рд╣реЗ рдЖрд░рдЯреАрдкреА (рд░рд┐рдЕрд▓ рдЯрд╛рдЗрдо рдЯреНрд░рд╛рдиреНрд╕рдкреЛрд░реНрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓) рд╕рд╛рд░рдЦреНрдпрд╛ рдСрд░реНрдбрд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдбреЗрдЯрд╛рдЧреНрд░рд╛рдо рдкреНрд░реЛрдЯреЛрдХреЙрд▓рд╡рд░ рдСрдбрд┐рдУ рд▓рд╣рд░ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗрд▓реЗ рдЖрд╣реЗ. рддреНрдпрд╛рдЪреА рд╡рд┐рд▓рдВрдм mp3 рдЖрдгрд┐ aac рдкреЗрдХреНрд╖рд╛ рдХрдореА рдЖрд╣реЗ рдЖрдгрд┐ рдЧреБрдгрд╡рддреНрддрд╛ рдЬрд╛рд╕реНрдд рдЖрд╣реЗ. рд╡рд┐рд▓рдВрдм рд╕рд╛рдзрд╛рд░рдгрддрдГ 5~66,5ms рдЕрд╕рддреЛ.

    рдЧреЛрд▓рд╛рдВрдЧ рдордзреНрдпреЗ Pion, WebRTC

    рдкреНрдпрд╛рдж WebRTC Golang рд▓рд╛ рдЖрдгрдгрд╛рд░рд╛ рдПрдХ рдореБрдХреНрдд рд╕реНрд░реЛрдд рдкреНрд░рдХрд▓реНрдк рдЖрд╣реЗ. рдиреЗрдЯрд┐рд╡реНрд╣ C++ WebRTC рд▓рд╛рдпрдмреНрд░рд░реАрдВрдЪреНрдпрд╛ рдиреЗрд╣рдореАрдЪреНрдпрд╛ рд░реЕрдкрд┐рдВрдЧрдРрд╡рдЬреА, Pion рд╣реЗ WebRTC рдЪреА рдЙрддреНрддрдо рдХрд╛рдордЧрд┐рд░реА, Go рдЗрдВрдЯрд┐рдЧреНрд░реЗрд╢рди рдЖрдгрд┐ WebRTC рдкреНрд░реЛрдЯреЛрдХреЙрд▓рд╡рд░реАрд▓ рдЖрд╡реГрддреНрддреА рдирд┐рдпрдВрддреНрд░рдг рдЕрд╕рд▓реЗрд▓реА рдореВрд│ рдЧреЛрд▓рд╛рдВрдЧ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдЖрд╣реЗ.

    рд▓рд╛рдпрдмреНрд░рд░реА рд╕рдм-рд╕реЗрдХрдВрдб рд▓реЗрдЯрдиреНрд╕реАрд╕рд╣ рдмрд░реНтАНрдпрд╛рдЪ рдЙрддреНрдХреГрд╖реНрдЯ рдмрд┐рд▓реНрдЯ-рдЗрдирд╕рд╣ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХрд░рддреЗ. рддреНрдпрд╛рдЪреА рд╕реНрд╡рддрдГрдЪреА STUN, DTLS, SCTP, рдЗрддреНрдпрд╛рджреАрдВрдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдЖрд╣реЗ. рдЖрдгрд┐ QUIC рдЖрдгрд┐ WebAssembly рд╕рд╣ рдХрд╛рд╣реА рдкреНрд░рдпреЛрдЧ. рд╣реА рдУрдкрди рд╕реЛрд░реНрд╕ рд▓рд╛рдпрдмреНрд░рд░реА рд╕реНрд╡рддрдГрдЪ рдЙрддреНрдХреГрд╖реНрдЯ рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг, рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдЖрдгрд┐ рдЫрд╛рди рдЙрджрд╛рд╣рд░рдгрд╛рдВрд╕рд╣ рдЦрд░реЛрдЦрд░рдЪ рдЙрддреНрддрдо рд╢рд┐рдХреНрд╖рдг рд╕рдВрд╕рд╛рдзрди рдЖрд╣реЗ.

    рдЕрддреНрдпрдВрдд рдЙрддреНрдХрдЯ рдирд┐рд░реНрдорд╛рддреНрдпрд╛рдЪреНрдпрд╛ рдиреЗрддреГрддреНрд╡рд╛рдЦрд╛рд▓реАрд▓ Pion рд╕рдореБрджрд╛рдп, WebRTC рдмрджреНрджрд▓ рднрд░рдкреВрд░ рджрд░реНрдЬреЗрджрд╛рд░ рдЪрд░реНрдЪрд╛ рд╕реБрд░реВ рдЕрд╕рддрд╛рдирд╛, рдЦреВрдкрдЪ рдЪреИрддрдиреНрдпрд╢реАрд▓ рдЖрд╣реЗ. рддреБрдореНрд╣рд╛рд▓рд╛ рдпрд╛ рддрдВрддреНрд░рдЬреНрдЮрд╛рдирд╛рдордзреНрдпреЗ рд╕реНрд╡рд╛рд░рд╕реНрдп рдЕрд╕рд▓реНрдпрд╛рд╕, рд╕рд╛рдореАрд▓ рд╡реНрд╣рд╛ http://pion.ly/slack - рддреБрдореНрд╣рд╛рд▓рд╛ рдЦреВрдк рдирд╡реАрди рдЧреЛрд╖реНрдЯреА рд╢рд┐рдХрд╛рдпрд▓рд╛ рдорд┐рд│рддреАрд▓.

    рдЧреЛрд▓рд╛рдВрдЧрдордзреНрдпреЗ рдХреНрд▓рд╛рдЙрдбрд░реЗрдЯреНрд░реЛ рд▓рд┐рд╣рд┐рдд рдЖрд╣реЗ

    WebRTC рд╡рд░ рдореБрдХреНрдд рд╕реНрд░реЛрдд рдХреНрд▓рд╛рдЙрдб рдЧреЗрдорд┐рдВрдЧ: p2p, рдорд▓реНрдЯреАрдкреНрд▓реЗрдЕрд░, рд╢реВрдиреНрдп рд╡рд┐рд▓рдВрдм
    рдЧреЛ рдордзреНрдпреЗ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА

    рдЪреЕрдирд▓ ре▓рдХреНрд╢рдирдордзреНрдпреЗ рдЬрд╛

    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
    	}
        }
    }

    рдлреЕрди-рдЗрди/рдлреЕрди-рдЖрдЙрдЯ

    рд╣реЗ рдЧреЛрд▓рдВрдЧ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдорд╛рдЭреНрдпрд╛ CrowdPlay рдЖрдгрд┐ рдорд▓реНрдЯрд┐рдкрд▓ рдкреНрд▓реЗрдЕрд░ рд╡рд╛рдкрд░ рдХреЗрд╕рдордзреНрдпреЗ рдЙрддреНрддрдо рдкреНрд░рдХрд╛рд░реЗ рдмрд╕рддреЗ. рдпрд╛ рдкреЕрдЯрд░реНрдирдЪреЗ рдЕрдиреБрд╕рд░рдг рдХрд░реВрди, рдПрдХрд╛ рдЦреЛрд▓реАрддреАрд▓ рд╕рд░реНрд╡ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХреЗрдВрджреНрд░реАрдп рдкреНрд░рд╡реЗрд╢ рдЪреЕрдиреЗрд▓рдордзреНрдпреЗ рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд. рдЧреЗрдо рдореАрдбрд┐рдпрд╛ рдирдВрддрд░ рдПрдХрд╛рдЪ рдЦреЛрд▓реАрддреАрд▓ рд╕рд░реНрд╡ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрд╕рд╛рдареА рддреИрдирд╛рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдЖрдореНрд╣реА рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдЪреНрдпрд╛ рдЕрдиреЗрдХ рдЧреЗрдо рд╕рддреНрд░рд╛рдВрдордзреАрд▓ рдЧреЗрдо рд╕реНрдерд┐рддреАрдЪреЗ рд╡рд┐рднрд╛рдЬрди рд╕рд╛рдзреНрдп рдХрд░рддреЛ.

    WebRTC рд╡рд░ рдореБрдХреНрдд рд╕реНрд░реЛрдд рдХреНрд▓рд╛рдЙрдб рдЧреЗрдорд┐рдВрдЧ: p2p, рдорд▓реНрдЯреАрдкреНрд▓реЗрдЕрд░, рд╢реВрдиреНрдп рд╡рд┐рд▓рдВрдм
    рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рд╕рддреНрд░рд╛рдВрдордзреНрдпреЗ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЭреЗрд╢рди

    рдЧреЛрд▓рдВрдЧрдЪреЗ рддреЛрдЯреЗ

    рдЧреЛрд▓рдВрдЧ рдкрд░рд┐рдкреВрд░реНрдг рдирд╛рд╣реА. рд╡рд╛рд╣рд┐рдиреА рд╕рдВрде рдЖрд╣реЗ. рдЕрд╡рд░реЛрдзрд┐рдд рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рддреБрд▓рдиреЗрдд, рдЧреЛ рдЪреЕрдирд▓ рд╕рдорд╡рд░реНрддреА рдЖрдгрд┐ рдереНрд░реЗрдбреЗрдб рдЗрд╡реНрд╣реЗрдВрдЯ рд╣рд╛рддрд╛рд│рдгреНрдпрд╛рдЪрд╛ рдПрдХ рд╕реЛрдкрд╛ рдорд╛рд░реНрдЧ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдЪреЕрдирд▓ рд╕рд░реНрд╡реЛрддреНрддрдо рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдкреНрд░рджрд╛рди рдХрд░рдд рдирд╛рд╣реА. рдЪреЕрдиреЗрд▓рдЪреНрдпрд╛ рдЦрд╛рд▓реА рдХреНрд▓рд┐рд╖реНрдЯ рдмреНрд▓реЙрдХрд┐рдВрдЧ рд▓реЙрдЬрд┐рдХ рдЖрд╣реЗ. рдореНрд╣рдгреВрди рдореА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдордзреНрдпреЗ рдХрд╛рд╣реА рд╕рдорд╛рдпреЛрдЬрди рдХреЗрд▓реЗ, рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЪреЕрдиреЗрд▓ рдмрджрд▓рддрд╛рдирд╛ рд▓реЙрдХ рдЖрдгрд┐ рдЕрдгреВ рдореВрд▓реНрдпреЗ рдкреБрдиреНрд╣рд╛ рд▓рд╛рдЧреВ рдХреЗрд▓реА.

    рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЧреЛрд▓рд╛рдВрдЧрдордзреАрд▓ рдХрдЪрд░рд╛ рд╡реЗрдЪрдХ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдирд╛рд╣реА, рдЬреНрдпрд╛рдореБрд│реЗ рдХрд╛рд╣реАрд╡реЗрд│рд╛ рд╕рдВрд╢рдпрд╛рд╕реНрдкрдж рд▓рд╛рдВрдм рд╡рд┐рд░рд╛рдо рд╣реЛрддреЛ. рд╣реЗ рд░рд┐рдЕрд▓-рдЯрд╛рдЗрдо рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдордзреНрдпреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░рддреЗ.

    COG

    рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореАрдбрд┐рдпрд╛ рдХреЙрдореНрдкреНрд░реЗрд╢рдирд╕рд╛рдареА рд╡рд┐рджреНрдпрдорд╛рди рдУрдкрди рд╕реЛрд░реНрд╕ рдЧреЛрд▓рдВрдЧ VP8/H264 рд▓рд╛рдпрдмреНрд░рд░реА рдЖрдгрд┐ рдЧреЗрдо рдПрдореБрд▓реЗрдЯрд░рд╕рд╛рдареА рд▓рд┐рдмреНрд░реЗрдЯреНрд░реЛ рд╡рд╛рдкрд░рддреЛ. рдпрд╛ рд╕рд░реНрд╡ рд▓рд╛рдпрдмреНрд░рд░реА рдлрдХреНрдд рдЧреЛ рд╡рд╛рдкрд░рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕реА рд▓рд╛рдпрдмреНрд░рд░реАрдЪреЗ рд░реЕрдкрд░ рдЖрд╣реЗрдд COG. рдХрд╛рд╣реА рддреЛрдЯреЗ рд╕реВрдЪреАрдмрджреНрдз рдЖрд╣реЗрдд рдбреЗрд╡реНрд╣ рдЪреЗрдиреА рджреНрд╡рд╛рд░реЗ рд╣реА рдкреЛрд╕реНрдЯ. рдорд▓рд╛ рдЖрд▓реЗрд▓реНрдпрд╛ рд╕рдорд╕реНрдпрд╛:

    • CGO рдордзреНрдпреЗ рдХреНрд░реЕрд╢ рдкрдХрдбрдгреНрдпрд╛рдд рдЕрдХреНрд╖рдорддрд╛, рдЕрдЧрджреА рдЧреЛрд▓рдВрдЧ рд░рд┐рдХрд╡реНрд╣рд░реА рдХреНрд░реЕрд╢рд╕рд╣;
    • рдЬреЗрд╡реНрд╣рд╛ рдЖрдореНрд╣реА CGO рдордзреНрдпреЗ рддрдкрд╢реАрд▓рд╡рд╛рд░ рд╕рдорд╕реНрдпрд╛ рд╢реЛрдзрдгреНрдпрд╛рдд рдЕрдХреНрд╖рдо рдЕрд╕рддреЛ рддреЗрд╡реНрд╣рд╛ рдХрд╛рдордЧрд┐рд░реАрддреАрд▓ рдЕрдбрдерд│реЗ рдУрд│рдЦрдгреНрдпрд╛рдд рдЕрдкрдпрд╢.

    рдирд┐рд╖реНрдХрд░реНрд╖

    рдореА рдХреНрд▓рд╛рдЙрдб рдЧреЗрдорд┐рдВрдЧ рд╕реЗрд╡рд╛ рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рдЪреЗ рдЖрдгрд┐ рдорд╛рдЭреНрдпрд╛ рдорд┐рддреНрд░рд╛рдВрд╕рд╣ рдСрдирд▓рд╛рдЗрди рдиреЙрд╕реНрдЯреЕрд▓реНрдЬрд┐рдХ рд░реЗрдЯреНрд░реЛ рдЧреЗрдо рдЦреЗрд│рдгреНрдпрд╛рд╕ рдорджрдд рдХрд░рдгрд╛рд░реЗ рд╡реНрдпрд╛рд╕рдкреАрда рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреЗ рдорд╛рдЭреЗ рдзреНрдпреЗрдп рд╕рд╛рдзреНрдп рдХреЗрд▓реЗ. Pion рд▓рд╛рдпрдмреНрд░рд░реА рдЖрдгрд┐ Pion рд╕рдореБрджрд╛рдпрд╛рдЪреНрдпрд╛ рдкрд╛рдард┐рдВрдмреНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╣рд╛ рдкреНрд░рдХрд▓реНрдк рд╢рдХреНрдп рдЭрд╛рд▓рд╛ рдирд╕рддрд╛. рдореА рддреНрдпрд╛рдЪреНрдпрд╛ рдЧрд╣рди рд╡рд┐рдХрд╛рд╕рд╛рдмрджреНрджрд▓ рдЕрддреНрдпрдВрдд рдЖрднрд╛рд░реА рдЖрд╣реЗ. WebRTC рдЖрдгрд┐ Pion рджреНрд╡рд╛рд░реЗ рдкреНрд░рджрд╛рди рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕рд╛рдзреНрдпрд╛ API рдиреЗ рдЕрдЦрдВрдб рдПрдХреАрдХрд░рдг рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХреЗрд▓реЗ. рдорд╛рдЭреНрдпрд╛ рд╕рдВрдХрд▓реНрдкрдиреЗрдЪрд╛ рдкрд╣рд┐рд▓рд╛ рдкреБрд░рд╛рд╡рд╛ рддреНрдпрд╛рдЪ рдЖрдард╡рдбреНрдпрд╛рдд рдкреНрд░рд╕рд┐рджреНрдз рдЭрд╛рд▓рд╛, рдЬрд░реА рдорд▓рд╛ рдкреАрдЕрд░-рдЯреВ-рдкреАрдЕрд░ (P2P) рд╕рдВрдкреНрд░реЗрд╖рдгрд╛рдЪреА рдХреЛрдгрддреАрд╣реА рдкреВрд░реНрд╡ рдорд╛рд╣рд┐рддреА рдирд╡реНрд╣рддреА.

    рдПрдХрд╛рддреНрдорддрд╛ рд╕реБрд▓рдн рдЕрд╕реВрдирд╣реА, P2P рдкреНрд░рд╡рд╛рд╣ рд╣реЗ рдЦрд░реЛрдЦрд░ рд╕рдВрдЧрдгрдХ рд╡рд┐рдЬреНрдЮрд╛рдирд╛рддреАрд▓ рдПрдХ рдЕрддрд┐рд╢рдп рдЬрдЯрд┐рд▓ рдХреНрд╖реЗрддреНрд░ рдЖрд╣реЗ. рдкреАрдЕрд░-рдЯреВ-рдкреАрдЕрд░ рд╕реЗрд╢рди рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддрд┐рд▓рд╛ IP рдЖрдгрд┐ NAT рд╕рд╛рд░рдЦреНрдпрд╛ рджреАрд░реНрдШрдХрд╛рд▓реАрди рдиреЗрдЯрд╡рд░реНрдХ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдЪреНрдпрд╛ рдЬрдЯрд┐рд▓рддреЗрдЪрд╛ рд╕рд╛рдордирд╛ рдХрд░рд╛рд╡рд╛ рд▓рд╛рдЧрддреЛ. рдпрд╛ рдкреНрд░рдХрд▓реНрдкрд╛рд╡рд░ рдХрд╛рдо рдХрд░рдд рдЕрд╕рддрд╛рдирд╛, рдорд▓рд╛ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдЖрдгрд┐ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рдирдмрджреНрджрд▓ рдмрд░реЗрдЪ рдореМрд▓реНрдпрд╡рд╛рди рдЬреНрдЮрд╛рди рдорд┐рд│рд╛рд▓реЗ, рдореНрд╣рдгреВрди рдореА рдкреНрд░рддреНрдпреЗрдХрд╛рд▓рд╛ WebRTC рд╡рд╛рдкрд░реВрди P2P рдЙрддреНрдкрд╛рджрдиреЗ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рдгреНрдпрд╛рд╕ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддреЛ.

    рд░реЗрдЯреНрд░реЛ рдЧреЗрдорд░ рдореНрд╣рдгреВрди рдорд▓рд╛ рдорд╛рдЭреНрдпрд╛ рджреГрд╖реНрдЯреАрдХреЛрдирд╛рддреВрди рдЕрдкреЗрдХреНрд╖рд┐рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡ рд╡рд╛рдкрд░рд╛рдЪреНрдпрд╛ рдХреЗрд╕реЗрд╕ рдХреНрд▓рд╛рдЙрдбрд░реЗрдЯреНрд░реЛ рдкреВрд░реНрдг рдХрд░рддреЗ. рддрдерд╛рдкрд┐, рдорд▓рд╛ рдЕрд╕реЗ рд╡рд╛рдЯрддреЗ рдХреА рдкреНрд░рдХрд▓реНрдкрд╛рдордзреНрдпреЗ рдореА рд╕реБрдзрд╛рд░реВ рд╢рдХрддреЛ рдЕрд╢реА рдЕрдиреЗрдХ рдХреНрд╖реЗрддреНрд░реЗ рдЖрд╣реЗрдд, рдЬрд╕реЗ рдХреА рдиреЗрдЯрд╡рд░реНрдХ рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╛рд╕рд╛рд░реНрд╣ рдЖрдгрд┐ рдХрд╛рд░реНрдпрдХреНрд╖рдо рдмрдирд╡рдгреЗ, рдЙрдЪреНрдЪ рджрд░реНрдЬрд╛рдЪреЗ рдЧреЗрдо рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдкреНрд░рджрд╛рди рдХрд░рдгреЗ рдХрд┐рдВрд╡рд╛ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдордзреНрдпреЗ рдЧреЗрдо рд╕рд╛рдорд╛рдпрд┐рдХ рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛. рдореА рдпрд╛рд╡рд░ рдЦреВрдк рдореЗрд╣рдирдд рдШреЗрдд рдЖрд╣реЗ. рдХреГрдкрдпрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рд╛ рдкреНрд░рдХрд▓реНрдк рдЖрдгрд┐ рддреБрдореНрд╣рд╛рд▓рд╛ рддреЗ рдЖрд╡рдбрд▓реНрдпрд╛рд╕ рд╕рдорд░реНрдерди рдХрд░рд╛.

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛