рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ JS: WebRTC рдФрд░ P2P рдХрдореНрдпреБрдирд┐рдХреЗрд╢рдВрд╕

[рдкрдврд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣] рдЪрдХреНрд░ рдХреЗ рдЕрдиреНрдп 19 рднрд╛рдЧреЛрдВ
рднрд╛рдЧ 1: рдЗрдВрдЬрди рдХрд╛ рдЕрд╡рд▓реЛрдХрди, рд░рдирдЯрд╛рдЗрдо рдореИрдХреЗрдирд┐рдЬреНрдо, рдХреЙрд▓ рд╕реНрдЯреИрдХ
рднрд╛рдЧ 2: рд╡реА 8 рдЗрдВрдЯрд░реНрдирд▓реНрд╕ рдФрд░ рдХреЛрдб рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рднрд╛рдЧ 3: рд╕реНрдореГрддрд┐ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдирд╛, рдЪрд╛рд░ рдкреНрд░рдХрд╛рд░ рдХреА рдореЗрдореЛрд░реА рд▓реАрдХ рдХрд░рдирд╛ рдФрд░ рдЙрдирд╕реЗ рдирд┐рдкрдЯрдирд╛
рднрд╛рдЧ 4: рдЗрд╡реЗрдВрдЯ рд▓реВрдк, Async, рдФрд░ рдкрд╛рдБрдЪ рддрд░реАрдХреЗ Async / рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП
рднрд╛рдЧ 5: WebSocket рдФрд░ HTTP / 2 + SSEред рдХреНрдпрд╛ рдЪреБрдирдирд╛ рд╣реИ?
рднрд╛рдЧ рем: рд╡реЗрдмрд╕рд░реНрд╡рд┐рд╕ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдФрд░ рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░
рднрд╛рдЧ 7: рд╡реЗрдм рд╢реНрд░рдорд┐рдХ рдФрд░ рдкрд╛рдБрдЪ рдЙрдкрдпреЛрдЧ рдкрд░рд┐рджреГрд╢реНрдп
рднрд╛рдЧ 8: рд╕реЗрд╡рд╛ рдХрд░реНрдореА
рднрд╛рдЧ 9: рд╡реЗрдм рдкреБрд╢ рд╕реВрдЪрдирд╛рдПрдБ
рднрд╛рдЧ 10: MutationObserver рдХреЗ рд╕рд╛рде DOM рдореЗрдВ рдЯреНрд░реИрдХ рдкрд░рд┐рд╡рд░реНрддрди
рднрд╛рдЧ 11: рд╡реЗрдм рдкреЗрдЬ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдЗрдВрдЬрди рдФрд░ рдЙрдирдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рд╕реБрдЭрд╛рд╡
рднрд╛рдЧ 12: рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╕рдмрд╕рд┐рд╕реНрдЯрдо, рдЗрд╕рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ
рднрд╛рдЧ 12: рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╕рдмрд╕рд┐рд╕реНрдЯрдо, рдЗрд╕рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ
рднрд╛рдЧ 13: рд╕реАрдПрд╕рдПрд╕ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдПрдиреАрдореЗрд╢рди
рднрд╛рдЧ 14: рдЬреЗрдПрд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рд╕рд╛рд░ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкреЗрдбрд╝, рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдФрд░ рдЗрд╕рдХрд╛ рдЕрдиреБрдХреВрд▓рди
рднрд╛рдЧ 15: рдЬреЗрдПрд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рдХрдХреНрд╖рд╛рдПрдВ рдФрд░ рд╡рд┐рд░рд╛рд╕рдд, рдмреЗрдмрд▓ рдФрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЯреНрд░рд╛рдВрд╕рдкреНрд▓рд┐рдХреЗрд╢рди
рднрд╛рдЧ 16: рдЬреЗрдПрд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рднрдВрдбрд╛рд░рдг
рднрд╛рдЧ 17: рдЬреЗрдПрд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рд╢реИрдбреЛ рдбреЛрдо рдЯреЗрдХреНрдиреЛрд▓реЙрдЬреА рдФрд░ рд╡реЗрдм рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕
рднрд╛рдЧ 18: рдЬреЗрдПрд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рд╡реЗрдмрдЖрд░рдЯреАрд╕реА рдФрд░ рдкреА 2 рдкреА рд╕рдВрдЪрд╛рд░ рддрдВрддреНрд░
рднрд╛рдЧ 19: рдЬреЗрдПрд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рдХрд╕реНрдЯрдо рддрддреНрд╡

рдЖрдЬ рд╣рдо рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣рд░ рдЪреАрдЬ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рднрд╛рдЧ 18 рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╣рд╛рдВ рд╣рдо WebRTC рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдмреАрдЪ рдкреНрд░рддреНрдпрдХреНрд╖ рдбреЗрдЯрд╛ рд╡рд┐рдирд┐рдордп рдХрд╛ рдЖрдпреЛрдЬрди рдХрд░рдирд╛ рд╣реИред

рдЫрд╡рд┐

рд╕рд┐рдВрд╣рд╛рд╡рд▓реЛрдХрди


WebRTC рдХреНрдпрд╛ рд╣реИ? рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХрд╣рдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╛рдо RTC рд░рд┐рдпрд▓ рдЯрд╛рдЗрдо рдХрдореНрдпреБрдирд┐рдХреЗрд╢рди (рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рд╕рдВрдЪрд╛рд░) рдХреЗ рд▓рд┐рдП рд╣реИред рдпрд╣ рдЕрдХреЗрд▓реЗ рдЗрд╕ рддрдХрдиреАрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рдЬрд╛рдирдХрд╛рд░реА рджреЗрддрд╛ рд╣реИред

WebRTC рд╡реЗрдм рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рддрдВрддреНрд░ рдХреЗ рдмреАрдЪ рдПрдХ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реНрдерд╛рди рд░рдЦрддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдбреЗрд╕реНрдХрдЯреЙрдк рдЪреИрдЯ рдЬреИрд╕реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреА 2 рдкреА рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ (рдкреАрдпрд░-рдЯреВ-рдкреАрдпрд░, рдкреЙрдЗрдВрдЯ-рдЯреВ-рдкреЙрдЗрдВрдЯ рдХрдиреЗрдХреНрд╢рди, рдкреАрдпрд░-рдЯреВ-рдкреАрдпрд░, рдкреАрдпрд░-рдЯреВ-рдкреАрдпрд░ рдиреЗрдЯрд╡рд░реНрдХ) рдиреЗ рдЙрдиреНрд╣реЗрдВ рдЕрд╡рд╕рд░ рджрд┐рдП рдХрд┐ рд╡реЗрдм рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдирд╣реАрдВ рдереЗред WebRTC рд╡реЗрдм рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдВрддрд░ рдмрдирд╛рддрд╛ рд╣реИред

WebRTC, рдпрджрд┐ рд╣рдо рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЗрд╕ рддрдХрдиреАрдХ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдкреА 2 рдкреА рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдо рдиреАрдЪреЗ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВрдЧреЗред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рд╡реЗрдмрдЖрд░рдЯреАрд╕реА рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рдХреА рдкреВрд░реА рддрд╕реНрд╡реАрд░ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╖рдпреЛрдВ рдХреЛ рдпрд╣рд╛рдВ рдХрд╡рд░ рдХрд░реЗрдВрдЧреЗ:

  • рдкреА 2 рдкреА рд╕рдВрдЪрд╛рд░ред
  • рдлрд╛рдпрд░рд╡реЙрд▓ рдФрд░ NAT рдЯреНрд░реЗрд╡рд░реНрд╕рд▓ рддрдХрдиреАрдХред
  • рд╕рд┐рдЧреНрдирд▓рд┐рдВрдЧ, рд╕рддреНрд░ рдФрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ред
  • WebRTC рдПрдкреАрдЖрдИ

рдкреА 2 рдкреА рд╕рдВрдЪрд╛рд░


рдорд╛рди рд▓реЗрдВ рдХрд┐ рджреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдиреЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ, рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬреЛ рдЖрдкрдХреЛ WebRTC рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реАрдбрд┐рдпреЛ рдЪреИрдЯ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╡реЗ рдкреА 2 рдкреА рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдирд┐рд░реНрдгрдп рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдПрдХ рдРрд╕реЗ рддрдВрддреНрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЛ рдПрдХ-рджреВрд╕рд░реЗ рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рд╕рдВрдЪрд╛рд░ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╕реВрдЪрдирд╛ рд╕реБрд░рдХреНрд╖рд╛ рддрдВрддреНрд░ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдорд▓реНрдЯреАрдореАрдбрд┐рдпрд╛ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред

рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рдкреА 2 рдкреА рдХрдиреЗрдХреНрд╢рди рд╕реЗ рдЬреБрдбрд╝реА рдореБрдЦреНрдп рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдпрд╣ рд╣реИ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЛ рдкрд╣рд▓реЗ рдПрдХ-рджреВрд╕рд░реЗ рдХреА рдЦреЛрдЬ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рдФрд░ рдлрд┐рд░ рдмреЛрд▓реА-рд╕рдВрдмрдВрдзреА рдбреЗрдЯрд╛ рд╣рд╕реНрддрд╛рдВрддрд░рдг рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЙрдХреЗрдЯреНрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдиреЗрдЯрд╡рд░реНрдХ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдо рдРрд╕реЗ рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХреА рд╕реНрдерд╛рдкрдирд╛ рд╕реЗ рдЬреБрдбрд╝реА рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВред

рдЬрдм рдХрд┐рд╕реА рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХреБрдЫ рдбреЗрдЯрд╛ рдпрд╛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдпрд╣ рдЙрдиреНрд╣реЗрдВ рд╕рд░реНрд╡рд░ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╣реИред рд╕рд░реНрд╡рд░ рдХрд╛ рдкрддрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкрддрд╛ рд╣реИред рдпрджрд┐ рд╣рдо рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ P2P рдЪреИрдЯ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдЬрд┐рд╕рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рдкреНрд░рддреНрдпрдХреНрд╖ рдХрдиреЗрдХреНрд╢рди рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рддреЛ рдЗрди рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рдкрддреЗ рдкрд╣рд▓реЗ рд╕реЗ рдЬреНрдЮрд╛рдд рдирд╣реАрдВ рд╣реИрдВред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдкреА 2 рдкреА рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рд╣реЛрдЧрд╛ред

рдлрд╛рдпрд░рд╡реЙрд▓ рдФрд░ рдПрдирдПрдЯреА рдЯреНрд░реИрд╡рд░реНрд╕рд▓ рдкреНрд░реЛрдЯреЛрдХреЙрд▓


рд╕рд╛рдзрд╛рд░рдг рдХрдВрдкреНрдпреВрдЯрд░, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдЙрдирдХреЗ рдкрд╛рд╕ рд╕реНрдерд┐рд░ рдмрд╛рд╣рд░реА рдЖрдИрдкреА рдкрддреЗ рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдРрд╕реЗ рдХрдВрдкреНрдпреВрдЯрд░ рдЖрдорддреМрд░ рдкрд░ рдлрд╛рдпрд░рд╡реЙрд▓ рдФрд░ NAT рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдкреАрдЫреЗ рд╕реНрдерд┐рдд рд╣реЛрддреЗ рд╣реИрдВред

NAT рдПрдХ рдРрд╕рд╛ рддрдВрддреНрд░ рд╣реИ, рдЬреЛ рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдХреЗ рдкреАрдЫреЗ рд╕реНрдерд┐рдд рдЖрдВрддрд░рд┐рдХ рд╕реНрдерд╛рдиреАрдп IP рдкрддреЛрдВ рдХрд╛ рдмрд╛рд╣рд░реА рд╡реИрд╢реНрд╡рд┐рдХ IP рдкрддреЛрдВ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рддрд╛ рд╣реИред NAT рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХрд╛ рдЙрдкрдпреЛрдЧ, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛рд░рдгреЛрдВ рд╕реЗ, рдФрд░ рджреВрд╕рд░реЗ, рдЙрдкрд▓рдмреНрдз рд╡реИрд╢реНрд╡рд┐рдХ IP рдкрддреЗ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ IPv4 рджреНрд╡рд╛рд░рд╛ рд▓рдЧрд╛рдП рдЧрдП рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЗ рдХрд╛рд░рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ WebRTC рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдЗрд╕ рддрдереНрдп рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╡рд░реНрддрдорд╛рди рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрдерд┐рд░ рдЖрдИрдкреА рдкрддрд╛ рд╣реИред

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ NAT рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдПрдХ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рд╣реИрдВ рдФрд░ рд╡рд╛рдИрдлрд╛рдИ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛ рдПрдХ рдЖрдИрдкреА рдкрддрд╛ рд╕реМрдВрдкрд╛ рдЬрд╛рдПрдЧрд╛ рдЬреЛ рдХреЗрд╡рд▓ рдЖрдкрдХреЗ NAT рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдкреАрдЫреЗ рдореМрдЬреВрдж рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдпрд╣ IP рдкрддрд╛ 172.0.23.4 рд╣реИред рдмрд╛рд╣рд░реА рджреБрдирд┐рдпрд╛ рдХреЗ рд▓рд┐рдП, рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдкрдХрд╛ рдЖрдИрдкреА рдкрддрд╛ 164.53.27.98 рдЬреИрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдмрд╛рд╣рд░реА рджреБрдирд┐рдпрд╛, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЖрдкрдХреЗ рдЕрдиреБрд░реЛрдз рдХреЛ 164.53.27.98 рдкрддреЗ рд╕реЗ рдЖрдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрддреА рд╣реИ, рд▓реЗрдХрд┐рди NAT рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЖрдкрдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдмрд╛рд╣рд░реА рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдП рдЧрдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдЙрддреНрддрд░ рдЖрдкрдХреЗ рдЖрдВрддрд░рд┐рдХ рдкрддреЗ 172.0.23.4 рдкрд░ рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдЕрдиреБрд╡рд╛рдж рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣реЛрддрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрдИрдкреА рдкрддреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЛрд░реНрдЯ рдирдВрдмрд░ рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ NAT рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдмрд╛рд╣рд░реА рджреБрдирд┐рдпрд╛, рдЖрдкрдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ, WebRTC рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрд╕ рдХрдВрдкреНрдпреВрдЯрд░ рдХрд╛ рдЖрдИрдкреА рдкрддрд╛ рдЬрд╛рдирдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдЖрдк рдЬрд┐рд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ рд╕рдВрд╡рд╛рдж рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡рд╣ рдЪрд▓ рд░рд╣рд╛ рд╣реИред

рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ STUN (рд╕рддреНрд░ NAT рдХреЗ рд▓рд┐рдП рд╕рддреНрд░ рддреНрд░реИрдорд╛рд╕рд┐рдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдПрдБ) рдФрд░ TURN (NAT рдХреЗ рдЖрд╕рдкрд╛рд╕ рд░рд┐рд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреНрд░реИрд╡рд╛рд░реНрд╖рд┐рдХ) рд╕рд░реНрд╡рд░ рджреГрд╢реНрдп рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддреЗ рд╣реИрдВред WebRTC рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдмрд╛рд╣рд░реА IP рдкрддреЗ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ STUN рд╕рд░реНрд╡рд░ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдо рдПрдХ рджреВрд░рд╕реНрде рд╕рд░реНрд╡рд░ рд╕реЗ рдХрд┐рдП рдЧрдП рдЕрдиреБрд░реЛрдз рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддрд╛рдХрд┐ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ рд╕рд░реНрд╡рд░ рдХрд┐рд╕ рдЖрдИрдкреА рдкрддреЗ рд╕реЗ рдпрд╣ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдПрдХ рд╕рдорд╛рди рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд░рд┐рдореЛрдЯ рд╕рд░реНрд╡рд░ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рднреЗрдЬреЗрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдЖрдИрдкреА рдкрддрд╛ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред

рдЗрд╕ рдзрд╛рд░рдгрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд┐ рдпрд╣ рдпреЛрдЬрдирд╛ рдЪрд╛рд▓реВ рд╣реИ рдФрд░ рдЖрдкрдиреЗ рдЕрдкрдиреЗ рдмрд╛рд╣рд░реА рдЖрдИрдкреА рдкрддреЗ рдФрд░ рдкреЛрд░реНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХреА рд╣реИ, рддреЛ рдЖрдк рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЕрдиреНрдп рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ (рд╣рдо рдЙрдиреНрд╣реЗрдВ рд╕рд╛рдерд┐рдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВрдЧреЗ) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рд╕реАрдзреЗ рдЖрдкрд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдпреЗ рдЪрдкрд░рд╛рд╕реА STUN рдпрд╛ TURN рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЛ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реЗ рдкрддреЗ рдЙрдиреНрд╣реЗрдВ рд╕реМрдВрдкреЗ рдЧрдП рд╣реИрдВред

рд╕рд┐рдЧреНрдирд▓рд┐рдВрдЧ, рд╕рддреНрд░ рдФрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓


рдиреЗрдЯрд╡рд░реНрдХ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛, рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╣реИ, рдПрдХ рдмрдбрд╝реА рд╕рд┐рдЧреНрдирд▓рд┐рдВрдЧ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдЬреЛ рд╡реЗрдмрдЖрд░рдЯреАрд╕реА рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, JSEP (рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рддреНрд░ рд╕реНрдерд╛рдкрдирд╛ рдкреНрд░реЛрдЯреЛрдХреЙрд▓) рдорд╛рдирдХ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рд╕рд┐рдЧреНрдирд▓рд┐рдВрдЧ рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рд╕рдВрд╕рд╛рдзрди рдЦреЛрдЬ, рд╕рддреНрд░ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдкреНрд░рдмрдВрдзрди, рд╕рдВрдЪрд╛рд░ рд╕реБрд░рдХреНрд╖рд╛, рдореАрдбрд┐рдпрд╛ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╕рдордиреНрд╡рдп, рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП, рд╕рд╛рдерд┐рдпреЛрдВ рдХреЛ рдЙрди рдбреЗрдЯрд╛ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдкрд░ рд╕рд╣рдордд рд╣реЛрдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рд╡реЗ рд╡рд┐рдирд┐рдордп рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рдиреЗрдЯрд╡рд░реНрдХ рдкрддреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдЗрд╕ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдЧреНрдирд▓рд┐рдВрдЧ рддрдВрддреНрд░ WebRTC API рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИред

рд╕рд┐рдЧреНрдирд▓рд┐рдВрдЧ рдХреЛ рд╡реЗрдмрдЖрд░рдЯреАрд╕реА рдорд╛рдирдХ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдХрдиреАрдХреЛрдВ рдФрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдореЗрдВ рд▓рдЪреАрд▓рд╛рдкрди рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рдПрдкреАрдЖрдИ рдореЗрдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕рд┐рдЧреНрдирд▓рд┐рдВрдЧ рдФрд░ рд╕рд░реНрд╡рд░ рдЬреЛ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ WebRTC рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдбреЗрд╡рд▓рдкрд░ рдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╣реИрдВред

рдЗрд╕ рдзрд╛рд░рдгрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд┐ рдЖрдкрдХрд╛ WebRTC рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, STUN рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдмрд╛рд╣рд░реА IP рдкрддреЗ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╣реИ, рдЕрдЧрд▓рд╛ рдЪрд░рдг рд╕рддреНрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдирд╛ рдФрд░ рдХрд┐рд╕реА рдЕрдиреНрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рд╕рдВрдмрдВрдз рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИред

рд╕рддреНрд░ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдФрд░ рдХрдиреЗрдХреНрд╢рди рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрд░реНрдЪрд╛ рдорд▓реНрдЯреАрдореАрдбрд┐рдпрд╛ рд╕рдВрдЪрд╛рд░ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рд╡рд╛рд▓реЗ рд╕рд┐рдЧреНрдирд▓рд┐рдВрдЧ / рд╕рдВрдЪрд╛рд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреА рдЧрдИ рд╣реИред рдпрд╣ рдкреНрд░реЛрдЯреЛрдХреЙрд▓, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрдкрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ рдЬрд┐рд╕рдХреЗ рддрд╣рдд рд╕рддреНрд░ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдФрд░ рд╕рдорд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрдирдореЗрдВ рд╕реЗ рдПрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ SIP (рд╕рддреНрд░ рдкрд╣рд▓ рдкреНрд░реЛрдЯреЛрдХреЙрд▓) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ WebRTC рд╕рд┐рдЧреНрдирд▓рд┐рдВрдЧ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рдЪреАрд▓реЗрдкрди рдХреЗ рдХрд╛рд░рдг, SIP рдПрдХрдорд╛рддреНрд░ рд╕рд┐рдЧреНрдирд▓рд┐рдВрдЧ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЪрдпрдирд┐рдд рд╕рд┐рдЧреНрдирд▓рд┐рдВрдЧ рдкреНрд░реЛрдЯреЛрдХреЙрд▓, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, SDP (рд╕рддреНрд░ рд╡рд┐рд╡рд░рдг рдкреНрд░реЛрдЯреЛрдХреЙрд▓) рдирд╛рдордХ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЗрдпрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ WebRTC рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдорд▓реНрдЯреАрдореАрдбрд┐рдпрд╛ рдбреЗрдЯрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рднреА рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЛ рдПрд╕рдбреАрдкреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХреЛрдИ рднреА рд╕рд╣рдХрд░реНрдореА (рд╡рд╣, WebRTC рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ) рдЬреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рд╣рдХрд░реНрдореА рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, ICE рдкреНрд░реЛрдЯреЛрдХреЙрд▓ (рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рдХрдиреЗрдХреНрдЯрд┐рд╡рд┐рдЯреА рдЗрд╕реНрдЯреИрдмреНрд▓рд┐рд╢рдореЗрдВрдЯ) рдХреЗ рд▓рд┐рдП рдЙрдореНрдореАрджрд╡рд╛рд░ рдорд╛рд░реНрдЧ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдЙрдореНрдореАрджрд╡рд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдИрдкреА рдкрддреЗ, рдмрдВрджрд░рдЧрд╛рд╣, рдФрд░ рдкрд░рд┐рд╡рд╣рди рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд╕рдВрдпреЛрдЬрди рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдПрдХ рдХрдВрдкреНрдпреВрдЯрд░ рдореЗрдВ рдХрдИ рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлреЗрд╕ (рд╡рд╛рдпрд░реНрдб, рд╡рд╛рдпрд░рд▓реЗрд╕ рдФрд░ рдЗрд╕реА рддрд░рд╣) рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдХрдИ рдЖрдИрдкреА рдкрддреЗ, рдкреНрд░рддреНрдпреЗрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣рд╛рдВ MDN рдХреЗ рд╕рд╛рде рдПрдХ рдЖрд░реЗрдЦ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХреА рдЙрдкрд░реЛрдХреНрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдкреА 2 рдкреА рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдХреЗ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛

рдПрдХ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ


рдкреНрд░рддреНрдпреЗрдХ рд╕рд╣рдХрд░реНрдореА рдкрд╣рд▓реЗ рдЕрдкрдиреЗ рдмрд╛рд╣рд░реА рдЖрдИрдкреА рдкрддреЗ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╣реИред рдлрд┐рд░, рд╕рд┐рдЧреНрдирд▓рд┐рдВрдЧ рдбреЗрдЯрд╛ рдХреЗ "рдЪреИрдирд▓" рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рд╕рддреНрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдФрд░ рдЙрдирдХреА рд╕реНрдерд╛рдкрдирд╛ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдерд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рдХреЗ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред

рдпреЗ "рдЪреИрдирд▓" рдмрд╛рд╣рд░реА рджреБрдирд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЕрдЬреНрдЮрд╛рдд рдФрд░ рджреБрд░реНрдЧрдо рд╣реИрдВ, рдЗрди рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ WebRTC рдХреЗ рд▓рдЪреАрд▓реЗрдкрди рдХреЗ рдХрд╛рд░рдг, рдФрд░ рдпрд╣ рддрдереНрдп рдХрд┐ рд╕рд┐рдЧреНрдирд▓рд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдорд╛рдирдХ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, "рдЪреИрдирд▓" рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдФрд░ рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдХреНрд░рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдХрдиреАрдХреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдереЛрдбрд╝рд╛ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреБрдЫ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рдбреЗрдЯрд╛ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдХреЗ рдЖрдпреЛрдЬрди рдХреЗ рд▓рд┐рдП "рдЪреИрдирд▓" рддрдВрддреНрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рд╣рдо рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдкреНрд░рдпреЛрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ "рдЪреИрдирд▓" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрджрд┐ рджреЛ рдпрд╛ рдЕрдзрд┐рдХ рд╕рд╣рдХрд░реНрдореА рдПрдХ рд╣реА "рдЪреИрдирд▓" рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВ, рддреЛ рд╕рд╛рдерд┐рдпреЛрдВ рдХреЛ рдбреЗрдЯрд╛ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдФрд░ рд╕рддреНрд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдорд┐рд▓рддрд╛ рд╣реИред рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░рдХрд╛рд╢рдХ-рдЧреНрд░рд╛рд╣рдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд╕рдорд╛рди рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХрдиреЗрдХреНрд╢рди рд╢реБрд░реВ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╕рд╣рдХрд░реНрдореА рдПрд╕рдЖрдИрдкреА рдпрд╛ рдПрд╕рдбреАрдкреА рдЬреИрд╕реЗ рд╕рд┐рдЧреНрдирд▓рд┐рдВрдЧ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ "рдСрдлрд╝рд░" рднреЗрдЬрддрд╛ рд╣реИред рдЖрд░рдВрднрдХрд░реНрддрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рд╕реЗ "рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛" рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ "рдЪреИрдирд▓" рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред

рдЙрддреНрддрд░ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдкреНрд░рддреНрдпреЗрдХ рджрд╛рд╡рдд рджреНрд╡рд╛рд░рд╛ рдПрдХрддреНрд░ рдХрд┐рдП рдЧрдП рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдЖрдИрд╕реАрдИ рдЙрдореНрдореАрджрд╡рд╛рд░реЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╖реНрдЯрддрдо рдЖрдИрд╕реАрдИ рдЙрдореНрдореАрджрд╡рд╛рд░реЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдбреЗрдЯрд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛ рд╕рд╛рдерд┐рдпреЛрдВ рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рд░реВрдЯрд┐рдВрдЧ рддрдВрддреНрд░ (рдЖрдИрдкреА рдкрддреЗ рдФрд░ рдкреЛрд░реНрдЯ) рдХреЗ рдмреАрдЪ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд╡реЗ рд╕рд╣рдордд рд╣реИрдВред

рдлрд┐рд░, рд╕рд╛рдерд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рд╕рдХреНрд░рд┐рдп рдиреЗрдЯрд╡рд░реНрдХ рд╕реЙрдХреЗрдЯ рд╕рддреНрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рддреНрдпреЗрдХ рд╕рд╣рдХрд░реНрдореА рд╕реНрдерд╛рдиреАрдп рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░реАрдо рдФрд░ рдбреЗрдЯрд╛ рдЪреИрдирд▓ рдХреЗ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ рдорд▓реНрдЯреАрдореАрдбрд┐рдпрд╛ рдбреЗрдЯрд╛ рдХрд╛ рджреЛ-рддрд░рдлрд╝рд╛ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рд▓рд╛рдЧреВ рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИред

рдпрджрд┐ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда ICE рдЙрдореНрдореАрджрд╡рд╛рд░ рдХреЛ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рддрдЪреАрдд рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрд╕рдлрд▓ рд╣реИ, рдЬреЛ рдХрднреА-рдХрднреА рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдФрд░ NAT рд╕рд┐рд╕реНрдЯрдо рдХреА рдЧрд▓рддреА рдХреЗ рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдПрдХ рдмреИрдХрдЕрдк рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд░рд┐рд▓реЗ, рдПрдХ TURN рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдПрдХ рд╕рд░реНрд╡рд░ рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдордзреНрдпрд╕реНрде рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕рд╛рдерд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдмрджрд▓реЗ рдЧрдП рдбреЗрдЯрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрддрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рдпреЛрдЬрдирд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреА 2 рдкреА рдХрдиреЗрдХреНрд╢рди рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкреАрдпрд░ рд╕реАрдзреЗ рдПрдХ-рджреВрд╕рд░реЗ рдХреЛ рдбреЗрдЯрд╛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рдЬрдм рдбреЗрдЯрд╛ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдХреЗ рд▓рд┐рдП TURN рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдПрдХ рдХрдордмреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░рддреНрдпреЗрдХ рд╕рд╣рдХрд░реНрдореА рдХреЛ рдЕрдм рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рджреВрд╕рд░реЛрдВ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рд╕рдВрд╡рд╛рдж рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдбреЗрдЯрд╛ рдХреИрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╕рд╛рдерд┐рдпреЛрдВ рдХреЛ рдпрд╣ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдмрд╛рд╣рд░реА TURN рд╕рд░реНрд╡рд░ рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдорд▓реНрдЯреАрдореАрдбрд┐рдпрд╛ рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рд╕рдВрдЪрд╛рд░ рд╕рддреНрд░ рдХреЗ рджреМрд░рд╛рди рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕ рд╕рд░реНрд╡рд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдпрд╣ рд╕рдордЭрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЕрдм рдпрд╣ рд╕рдВрдЪрд╛рд░ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдмреИрдХрдЕрдк рддрд░реАрдХрд╛ рдерд╛ред TURN- рд╕рд░реНрд╡рд░ рдмрд╣реБрдд рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП, рдПрдХ рдмрдбрд╝реА рдмреИрдВрдбрд╡рд┐рдбреНрде рдФрд░ рдЧрдВрднреАрд░ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рд╢рдХреНрддрд┐ рд╣реЛ, рд╕рдВрднрд╛рд╡рд┐рдд рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рд╕рдорд░реНрдерди рдХрд╛рд░реНрдп рдХрд░реЗрдВред рдЗрд╕рд▓рд┐рдП, TURN рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЬрд╛рд╣рд┐рд░ рддреМрд░ рдкрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдЧрдд рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╣реЛрддреА рд╣реИред

WebRTC рдПрдкреАрдЖрдИ


WebRTC рдореЗрдВ рдореМрдЬреВрдж API рдХреА рддреАрди рдореБрдЦреНрдп рд╢реНрд░реЗрдгрд┐рдпрд╛рдВ рд╣реИрдВ:

  • рдореАрдбрд┐рдпрд╛ рдХреИрдкреНрдЪрд░ рдФрд░ рд╕реНрдЯреНрд░реАрдо рдХреЗ рд▓рд┐рдП рдореАрдбрд┐рдпрд╛ рдХреИрдкреНрдЪрд░ рдФрд░ рд╕реНрдЯреНрд░реАрдо рдПрдкреАрдЖрдИ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдпрд╣ рдПрдкреАрдЖрдИ рдЖрдкрдХреЛ рдЗрдирдкреБрдЯ рдбрд┐рд╡рд╛рдЗрд╕, рдЬреИрд╕реЗ рдорд╛рдЗрдХреНрд░реЛрдлреЛрди рдФрд░ рд╡реЗрдмрдХреИрдо рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдФрд░ рдЙрдирд╕реЗ рдореАрдбрд┐рдпрд╛ рд╕реНрдЯреНрд░реАрдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
  • RTCPeerConnection API рдЗрд╕ рд╢реНрд░реЗрдгреА рдХреЗ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, WebRTC рдХреЗ рдПрдХ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рд╕реЗ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ, рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдСрдбрд┐рдпреЛ рдпрд╛ рд╡реАрдбрд┐рдпреЛ рдбреЗрдЯрд╛ рдХреА рдХреИрдкреНрдЪрд░ рд╕реНрдЯреНрд░реАрдо рдХреЛ WebRTC рдХреЗ рджреВрд╕рд░реЗ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рддрдХ рднреЗрдЬрдирд╛ рд╕рдВрднрд╡ рд╣реИред рдЗрд╕ API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдФрд░ рд░рд┐рдореЛрдЯ рдкреАрдпрд░ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдПрдХ рджреВрд░рд╕реНрде рд╕рд╣рдХрд░реНрдореА рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдиреЗрдХреНрд╢рди рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдФрд░ рдЗрд╕рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рддрд░реАрдХреЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • RTCDataChannel рдПрдкреАрдЖрдИ рдЗрд╕ рдПрдкреАрдЖрдИ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдП рдЧрдП рддрдВрддреНрд░ рдордирдорд╛рдиреЗ рдбреЗрдЯрд╛ рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛ рдЪреИрдирд▓ RTCPeerConnection рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред

рдЖрдЗрдП рдЗрди рдПрдкреАрдЖрдИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред

рдПрдкреАрдЖрдИ рдореАрдбрд┐рдпрд╛ рдХреИрдкреНрдЪрд░ рдФрд░ рд╕реНрдЯреНрд░реАрдо


рдореАрдбрд┐рдпрд╛ рдХреИрдкреНрдЪрд░ рдФрд░ рд╕реНрдЯреНрд░реАрдо рдПрдкреАрдЖрдИ, рдЬрд┐рд╕реЗ рдЕрдХреНрд╕рд░ рдореАрдбрд┐рдпрд╛ рд╕реНрдЯреНрд░реАрдо рдПрдкреАрдЖрдИ рдпрд╛ рд╕реНрдЯреНрд░реАрдо рдПрдкреАрдЖрдИ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рдПрдкреАрдЖрдИ рд╣реИ рдЬреЛ рдСрдбрд┐рдпреЛ рдФрд░ рд╡реАрдбрд┐рдпреЛ рдбреЗрдЯрд╛ рдХреА рдзрд╛рд░рд╛рдУрдВ, рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рддрд┐рдмрдВрдз рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣рд╛рдВ рдСрдкрд░реЗрд╢рди рдХреЗ рд╕рдлрд▓ рдФрд░ рдЕрд╕рдлрд▓ рд╕рдорд╛рдкрди рдХреЗ рд▓рд┐рдП рдХреЙрд▓рдмреИрдХ рд╣реИрдВ, рдЬреЛ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдСрдкрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рдЙрдардиреЗ рд╡рд╛рд▓реА рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдПред

getUserMedia() API рдХреА getUserMedia() рд╡рд┐рдзрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдЙрди рдЗрдирдкреБрдЯ рдбрд┐рд╡рд╛рдЗрд╕реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд╛рдВрдЧрддреА рд╣реИ рдЬреЛ рдСрдбрд┐рдпреЛ рдпрд╛ рд╡реАрдбрд┐рдпреЛ рдЯреНрд░реИрдХ рдХреЗ рд╕рд╛рде MediaStream рд╕реНрдЯреНрд░реАрдо рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддреА рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдЕрдиреБрд░реЛрдзрд┐рдд рдореАрдбрд┐рдпрд╛ рдкреНрд░рдХрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рдзрд╛рд░рд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡реАрдбрд┐рдпреЛ рдЯреНрд░реИрдХ (рдЗрд╕рдХрд╛ рд╕реНрд░реЛрдд рдпрд╛ рддреЛ рдПрдХ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдпрд╛ рд╡рд░реНрдЪреБрдЕрд▓ рд╡реАрдбрд┐рдпреЛ рд╕реНрд░реЛрдд рд╣реИ, рдЬреИрд╕реЗ рдХреИрдорд░рд╛, рд╡реАрдбрд┐рдпреЛ рд░рд┐рдХреЙрд░реНрдбрд░, рд╕реНрдХреНрд░реАрди рд╢реЗрдпрд░рд┐рдВрдЧ рд╕реЗрд╡рд╛, рдЖрджрд┐), рдПрдХ рдСрдбрд┐рдпреЛ рдЯреНрд░реИрдХ (рднреМрддрд┐рдХ рдпрд╛ рдЖрднрд╛рд╕реА рдСрдбрд┐рдпреЛ рд╕реНрд░реЛрдд рдЗрд╕реА рддрд░рд╣ рд╕реЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ,) рдПрдХ рдорд╛рдЗрдХреНрд░реЛрдлреЛрди рдХреА рддрд░рд╣, рдПрдХ рдПрдирд╛рд▓реЙрдЧ-рдЯреВ-рдбрд┐рдЬрд┐рдЯрд▓ рдХрдирд╡рд░реНрдЯрд░, рдФрд░ рдЗрд╕реА рддрд░рд╣), рдФрд░ рд╕рдВрднрд╡рддрдГ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рдЯреНрд░реИрдХред

рдпрд╣ рд╡рд┐рдзрд┐ MediaStream рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рд╡рд╛рджрд╛ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрдорддрд┐ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджреЗрддрд╛ рд╣реИ рдпрд╛ рд╕рдВрдмрдВрдзрд┐рдд рдореАрдбрд┐рдпрд╛ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ, рддреЛ рдХреНрд░рдорд╢рдГ PermissionDeniedError рдпрд╛ NotFoundError рд╕рд╛рде рд╡рд╛рджрд╛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЖрдк navigator рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ MediaDevice рд╕рд┐рдВрдЧрд▓рдЯрди рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 navigator.mediaDevices.getUserMedia(constraints) .then(function(stream) { /*   */ }) .catch(function(err) { /*   */ }); 

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЬрдм рдЖрдк getUserMedia() рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рдПрдХ constraints рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рдПрдкреАрдЖрдИ рдХреЛ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдЙрд╕реЗ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреА рд╕реНрдЯреНрд░реАрдо рдкрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣рд╛рдВ рдЖрдк рдмрд╣реБрдд рд╕реА рдЪреАрдЬреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдХрд┐рд╕ рдХреИрдорд░реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рд╕рд╛рдордиреЗ рдпрд╛ рдкреАрдЫреЗ), рдлреНрд░реЗрдо рджрд░, рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди, рдЗрддреНрдпрд╛рджрд┐ред

рд╕рдВрд╕реНрдХрд░рдг 25 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░, рдХреНрд░реЛрдорд┐рдпрдо-рдЖрдзрд╛рд░рд┐рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░ getUserMedia() рдСрдбрд┐рдпреЛ рдпрд╛ рд╡реАрдбрд┐рдпреЛ рддрддреНрд╡реЛрдВ рд╕реЗ рдСрдбрд┐рдпреЛ рдбреЗрдЯрд╛ рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ (рд╣рд╛рд▓рд╛рдВрдХрд┐, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдореАрдбрд┐рдпрд╛ рддрддреНрд╡ рдЕрдХреНрд╖рдо рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ)ред

getUserMedia() рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡реЗрдм рдСрдбрд┐рдпреЛ API рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рдиреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ :

 function gotStream(stream) {   window.AudioContext = window.AudioContext || window.webkitAudioContext;   var audioContext = new AudioContext();   //  AudioNode     var mediaStreamSource = audioContext.createMediaStreamSource(stream);   //       ,    ,   //       !   mediaStreamSource.connect(audioContext.destination); } navigator.getUserMedia({audio:true}, gotStream); 

рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЬрд╛рдирдХрд╛рд░реА рдХреА рд╕реБрд░рдХреНрд╖рд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕реАрдорд╛рдПрдБ


рдорд╛рдЗрдХреНрд░реЛрдлрд╝реЛрди рдпрд╛ рдХреИрдорд░реЗ рд╕реЗ рдбреЗрдЯрд╛ рдХрд╛ рдЕрдирдзрд┐рдХреГрдд рдХрдмреНрдЬрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЬреАрд╡рди рдХреЗ рд╕рд╛рде рдПрдХ рдЧрдВрднреАрд░ рд╣рд╕реНрддрдХреНрд╖реЗрдк рд╣реИред рдЗрд╕рд▓рд┐рдП, getUserMedia() рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред getUserMedia() рд╡рд┐рдзрд┐ рдХреЛ рд╣рдореЗрд╢рд╛ рдХрд┐рд╕реА рднреА рдЗрдирдкреБрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЦреЛрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЕрдиреБрдорддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдЬреЛ рдореАрдбрд┐рдпрд╛ рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдПрдХ рд╡реЗрдмрдХреИрдо рдпрд╛ рдорд╛рдЗрдХреНрд░реЛрдлреЛрдиред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдХ рдбреЛрдореЗрди рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рд░ рдХреА рдЕрдиреБрдорддрд┐ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреА рдкреЗрд╢рдХрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдХрдо рд╕реЗ рдХрдо рдкрд╣рд▓реА рдмрд╛рд░ рдореАрдбрд┐рдпрд╛ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдРрд╕реА рдЕрдиреБрдорддрд┐ рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред

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

RTCPeerConnection Interface


RTCPeerConnection рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реНрдерд╛рдиреАрдп рдХрдВрдкреНрдпреВрдЯрд░ рдФрд░ рджреВрд░рд╕реНрде рд╕рд╣рдХрд░реНрдореА рдХреЗ рдмреАрдЪ рдПрдХ WebRTC рдХрдиреЗрдХреНрд╢рди рд╣реИред рдпрд╣ рджреВрд░рд╕реНрде рдкреНрд░рдгрд╛рд▓реА рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдиреЗрдХреНрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдФрд░ рдЗрд╕рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП, рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рдж рдХрдиреЗрдХреНрд╢рди рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реАрдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдпрд╣рд╛рдБ рдПрдХ WebRTC рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдЖрд░реЗрдЦ рд╣реИ рдЬреЛ RTCPeerConnection рдХреА рднреВрдорд┐рдХрд╛ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред


RTCPeerConnection рднреВрдорд┐рдХрд╛

рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рд╕реЗ, рдЗрд╕ рдЖрд░реЗрдЦ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕реЗ рдЬреЛ рдореБрдЦреНрдп рдЬреНрдЮрд╛рди рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ RTCPeerConnection рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЧрд╣рд░реЗ рд╕реНрддрд░реЛрдВ рдкрд░ рд╕реНрдерд┐рдд рдЬрдЯрд┐рд▓ рддрдВрддреНрд░ рд╕реЗ рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░ рдХреЛ рд╕рд╛рд░ рдХрд░рддрд╛ рд╣реИред WebRTC рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдбреЗрдХреНрд╕ рдФрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдбреЗрдЯрд╛ рд╡рд┐рдирд┐рдордп рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рднреАред рдЗрди рддрдВрддреНрд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХрд┐рдП рдЧрдП рдХреБрдЫ рдХрд╛рд░реНрдп рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рд╣реИрдВ:

  • рдкреИрдХреЗрдЯ рдХрд╛ рдиреБрдХрд╕рд╛рди
  • рдЗрдХреЛ рд░рджреНрджред
  • рдмреИрдВрдбрд╡рд┐рдбреНрде рдЕрдиреБрдХреВрд▓рдиред
  • рдШрдмрд░рд╛рд╣рдЯ рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд╛рдпрдиреЗрдорд┐рдХ рдмрдлрд░рд┐рдВрдЧред
  • рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╡реЙрд▓реНрдпреВрдо рдирд┐рдпрдВрддреНрд░рдгред
  • рд╢реЛрд░ рдореЗрдВ рдХрдореА рдФрд░ рджрдордиред
  • "рд╕рдлрд╛рдИ" рдЫрд╡рд┐ред

RTCDataChannel рдПрдкреАрдЖрдИ


рдСрдбрд┐рдпреЛ рдФрд░ рд╡реАрдбрд┐рдпреЛ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде, WebRTC рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдХреЗ рдкреНрд░рд╕рд╛рд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред RTCDataChannel API рдЖрдкрдХреЛ рдордирдорд╛рдиреЗ рдбреЗрдЯрд╛ рдХреЗ P2P рдПрдХреНрд╕рдЪреЗрдВрдЬ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдЗрд╕ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдкрд░рд┐рджреГрд╢реНрдп рд╣реИрдВред рдпрд╣рд╛рдБ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╣реИрдВ:

  • рдЦреЗрд▓ред
  • рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдкрд╛рда рдЪреИрдЯред
  • рдлрд╝рд╛рдЗрд▓ рд╕реНрдерд╛рдирд╛рдВрддрд░рдгред
  • рд╡рд┐рдХреЗрдВрджреНрд░реАрдХреГрдд рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рд╕рдВрдЧрдардиред

рдпрд╣ API RTCPeerConnection API рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рд╕рдмрд╕реЗ рдХреБрд╢рд▓ рдЙрдкрдпреЛрдЧ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рд╣реИ рдФрд░ рдЖрдкрдХреЛ P2P рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдФрд░ рд▓рдЪреАрд▓реА рдбреЗрдЯрд╛ рд╡рд┐рдирд┐рдордп рдкреНрд░рдгрд╛рд▓реА рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИрдВ:

  • RTCPeerConnection рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рддреНрд░ рдХреЗ рд╕рд╛рде рдкреНрд░рднрд╛рд╡реА рдХрд╛рд░реНрдпред
  • рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рд╕рд╛рде рдПрдХрд╛рдзрд┐рдХ рдПрдХ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрдЪрд╛рд░ рдЪреИрдирд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред
  • рд╕рдВрджреЗрд╢ рд╡рд┐рддрд░рдг рдХреЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдФрд░ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред
  • рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рдмрдВрдзрди (DTLS) рдФрд░ рднреАрдбрд╝рднрд╛рдбрд╝ред

рдпрд╣рд╛рдБ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡реИрд╕рд╛ рд╣реА рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗрдмрд╕реЙрдХреЗрдЯ рддрдХрдиреАрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред send() рд╡рд┐рдзрд┐ рдФрд░ message рдШрдЯрдирд╛ рдпрд╣рд╛рдБ рд▓рд╛рдЧреВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

 var peerConnection = new webkitRTCPeerConnection(servers,   {optional: [{RtpDataChannels: true}]} ); peerConnection.ondatachannel = function(event) {   receiveChannel = event.channel;   receiveChannel.onmessage = function(event){       document.querySelector("#receiver").innerHTML = event.data;   }; }; sendChannel = peerConnection.createDataChannel("sendDataChannel", {reliable: false}); document.querySelector("button#send").onclick = function (){   var data = document.querySelector("textarea#send").value;   sendChannel.send(data); } 

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдореЗрдВ WebRTC


рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдореЗрдВ, WebRTC рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╕рд┐рд╕реНрдЯрдо рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдиреБрдХреНрд░рдо рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рдЦреЛрдЬрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд╛рдоред
  • WebRTC рдЧреНрд░рд╛рд╣рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ (рд╕рд╣рдХрд░реНрдореА) рдиреЗрдЯрд╡рд░реНрдХ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред
  • рд╕рд╛рдерд┐рдпреЛрдВ рдиреЗ рдореАрдбрд┐рдпрд╛ рдбреЗрдЯрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛, рдЬреИрд╕реЗ рдХрд┐ рд╡реАрдбрд┐рдпреЛ рдкреНрд░рд╛рд░реВрдк рдФрд░ рд╕рдВрдХрд▓реНрдкред
  • WebRTC рдХреНрд▓рд╛рдЗрдВрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧ NAT рдЧреЗрдЯрд╡реЗ рдФрд░ рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░ рдПрдХ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, WebRTC рдХреЛ рдЪрд╛рд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд░реНрд╡рд░ рдлрд╝рдВрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ:

  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рдЙрдирдХреА рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдзрдиред
  • Signalirovanieред
  • рдиреИрдЯ рдФрд░ рдлрд╛рдпрд░рд╡реЙрд▓ рдмрд╛рдпрдкрд╛рд╕ред
  • рдкреА 2 рдкреА рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рд░рд┐рд▓реЗ рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

STUN рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдФрд░ рдЙрд╕рдХреЗ TURN рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ ICE рджреНрд╡рд╛рд░рд╛ RTCPeerConnection рдХреЛ NAT рдмрд╛рдИрдкрд╛рд╕ рддрдВрддреНрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдбреЗрдЯрд╛ рд╕рдВрдЪрд╛рд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реА рдЕрдиреНрдп рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЖрдИрд╕реАрдИ рджреЛ рд╡реАрдбрд┐рдпреЛ рдЪреИрдЯ рдХреНрд▓рд╛рдЗрдВрдЯ рдЬреИрд╕реЗ рд╕рд╛рдерд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╣реИред рд╕рдВрдЪрд╛рд░ рд╕рддреНрд░ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, ICE UDP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдХрдо рд╕реЗ рдХрдо рд╕рдВрднрд╡ рджреЗрд░реА рдХреЗ рд╕рд╛рде, рд╕реАрдзреЗ рд╕рд╛рдерд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди, STUN рд╕рд░реНрд╡рд░реЛрдВ рдХрд╛ рдПрдХ рд╣реА рдХрд╛рдо рд╣реЛрддрд╛ рд╣реИ: NAT рдХреЗ рдкреАрдЫреЗ рд╕рд╣рдХрд░реНрдореА рдХреЛ рдЙрд╕рдХрд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрддрд╛ рдФрд░ рдкреЛрд░реНрдЯ рд╕реАрдЦрдиреЗ рджреЗрдирд╛ред рдЙрдкрд▓рдмреНрдз STUN рд╕рд░реНрд╡рд░реЛрдВ рдХреА рдЗрд╕ рд╕реВрдЪреА рдкрд░ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ (Google рдХреЗ рдкрд╛рд╕ рднреА рдРрд╕реЗ рд╕рд░реНрд╡рд░ рд╣реИрдВ)ред


STUN рд╕рд░реНрд╡рд░

рдЖрдИрд╕реАрдИ рдЙрдореНрдореАрджрд╡рд╛рд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ


рдпрджрд┐ UDP рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ ICE рдПрдХ TCP рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ: рдкрд╣рд▓рд╛ - HTTP рдкрд░, рдлрд┐рд░ - HTTPS рдкрд░ред рдпрджрд┐ рдкреНрд░рддреНрдпрдХреНрд╖ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдХреЙрд░реНрдкреЛрд░реЗрдЯ NAT рдФрд░ рдлрд╛рдпрд░рд╡реЙрд▓ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдерддрд╛ рдХреЗ рдХрд╛рд░рдг, ICE рдПрдХ TURN рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдордзреНрдпрд╕реНрде (рд░рд┐рд▓реЗ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, ICE рдкрд╣рд▓реА рдмрд╛рд░ рд╕рд╛рдерд┐рдпреЛрдВ рдХреЗ рд╕реАрдзреЗ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП UDP рдХреЗ рд╕рд╛рде STUN рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдЧрд╛, рдФрд░ рдпрджрд┐ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ TURN рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдХрд┐рд░рд╛рдПрджрд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХ рдХрдордмреИрдХ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред рд╢рдмреНрдж "рдЙрдореНрдореАрджрд╡рд╛рд░ рдЦреЛрдЬ" рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлреЗрд╕ рдФрд░ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред


рдЙрдкрдпреБрдХреНрдд рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлреЗрд╕ рдФрд░ рдкреЛрд░реНрдЯ рдЦреЛрдЬрдирд╛

рд╕реБрд░рдХреНрд╖рд╛


рд░реАрдпрд▓-рдЯрд╛рдЗрдо рд╕рдВрдЪрд╛рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдпрд╛ рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд▓рдЧ рдЗрди рд╕реБрд░рдХреНрд╖рд╛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЬрдиреНрдо рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

  • рдЕрдирдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдореАрдбрд┐рдпрд╛ рдбреЗрдЯрд╛ рдпрд╛ рдЕрдиреНрдп рдбреЗрдЯрд╛ рдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рдмреАрдЪ, рдпрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рдХреЗ рд░рд╛рд╕реНрддреЗ рд╕реЗ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
  • рдПрдХ рдЖрд╡реЗрджрди, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЬреНрдЮрд╛рди рдХреЗ рдмрд┐рдирд╛, рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдХреЛ рд╡реАрдбрд┐рдпреЛ рдФрд░ рдСрдбрд┐рдпреЛ рдбреЗрдЯрд╛ рд░рд┐рдХреЙрд░реНрдб рдФрд░ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред
  • рдПрдХ рд╣рд╛рдирд┐рд░рд╣рд┐рдд рджрд┐рдЦрдиреЗ рд╡рд╛рд▓реЗ рдкреНрд▓рдЧ-рдЗрди рдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде, рдПрдХ рд╡рд╛рдпрд░рд╕ рдпрд╛ рдЕрдиреНрдп рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

WebRTC рдХреЗ рдкрд╛рд╕ рдЗрди рдЦрддрд░реЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рддрдВрддреНрд░ рд╣реИрдВ:

  • WebRTC рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди DTLS рдФрд░ SRTP рдЬреИрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
  • WebRTC рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рднреА рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП, рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣реИред рдпрд╣ рд╕рд┐рдЧреНрдирд▓рд┐рдВрдЧ рддрдВрддреНрд░ рдкрд░ рднреА рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред
  • WebRTC рдПрдХ рдкреНрд▓рдЧрдЗрди рдирд╣реАрдВ рд╣реИред WebRTC рдШрдЯрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдореЗрдВ рдЪрд▓рддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ рдЕрд▓рдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдирд╣реАрдВред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЕрдкрдбреЗрдЯ рд╣реЛрдиреЗ рдкрд░ рдШрдЯрдХ рдЕрдкрдбреЗрдЯ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред
  • рдХреИрдорд░рд╛ рдФрд░ рдорд╛рдЗрдХреНрд░реЛрдлрд╝реЛрди рддрдХ рдкрд╣реБрдВрдЪ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рдФрд░, рдЬрдм рдПрдХ рдХреИрдорд░рд╛ рдпрд╛ рдорд╛рдЗрдХреНрд░реЛрдлреЛрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рддрдереНрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред

рдкрд░рд┐рдгрд╛рдо


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

рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╡реЗрдмрдЖрд░рдЯреАрд╕реА рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ?

Source: https://habr.com/ru/post/hi416821/


All Articles