HTML + JS рдЧреНрд░рд╛рд╣рдХ рд▓рд╛рдЗрди рдирд┐рдЧрд░рд╛рдиреА рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд▓рд┐рдП



Geektimes рдореЗрдВ, рдореИрдВ рдЕрдХреНрд╕рд░ DIY рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕реЗ рдкреЛрд╕реНрдЯ рдкрдврд╝рдиреЗ рдФрд░ рдорд┐рд▓рдиреЗ рдХрд╛ рдЖрдирдВрдж рд▓реЗрддрд╛ рд╣реВрдВред рдпрд╣рд╛рдВ рдПрдХрддреНрд░ рд╣реБрдП рдореВрд▓реНрдпрд╡рд╛рди рдЕрдиреБрднрд╡ рдХреЗ рдЦрдЬрд╛рдиреЗ рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдпреЛрдЧрджрд╛рди рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рд▓рд╛рдЗрди рд╕рд░реНрд╡рд░ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╡реЗрдм рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ред

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

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

рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛

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

рдореИрдВ рдЕрднреА рдореБрдЦреНрдп рд╕рд╛рдЬрд╝рд┐рд╢ рдХрд╛ рдЦреБрд▓рд╛рд╕рд╛ рдХрд░реВрдБрдЧрд╛ - рдореИрдВ рджреЛ рдирд┐рд╖реНрдХрд░реНрд╖реЛрдВ рдкрд░ рдЖрдпрд╛:

  1. рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реИ, рдпрд╣ рдХрд╛рдлреА рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╣реИ, рдЖрдк C ++, PHP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред
  2. рдЖрдк рдХреЗрд╡рд▓ рдЬреЗрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдкреВрд░реНрдг HTML рдХреНрд▓рд╛рдЗрдВрдЯ рдирд╣реАрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ - RPC рд╕реЗ рдкрд╣рд▓реЗ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреЗрд╡рд▓ рдСрдирд▓рд╛рдЗрди рдореЙрдирд┐рдЯрд░рд┐рдВрдЧред

рдкрд╣рд▓рд╛ рдирд┐рд╖реНрдХрд░реНрд╖ рдХрд╛рдлреА рддрд╛рд░реНрдХрд┐рдХ рд╣реИ, рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдгред рд╡реЗ рд╕рднреА рд╕рд╛рдЗрдЯ рдкрд░ рд╡рд░реНрдгрд┐рдд рд╣реИрдВ: рдПрдХреНрд╕реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓ рд╕рд┐рд╕реНрдЯрдо , рд╡рдЬрди , рдкреАрдУрдПрд╕ рд╕рд┐рд╕реНрдЯрдо , рдХрд╛рд░ рдирдВрдмрд░ рдФрд░ 1 рд╕реА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реИрдВред

рджреВрд╕рд░рд╛ рдирд┐рд╖реНрдХрд░реНрд╖ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рдЗрд╕реЗ рдиреАрдЪреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

рдЖрдк HTML + JS рдореЗрдВ рдкреВрд░реНрдг рдЧреНрд░рд╛рд╣рдХ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗ?


рдЙрддреНрддрд░: рдХреНрд░реЙрд╕-рдбреЛрдореЗрди рдЕрдиреБрд░реЛрдзред

рдлрд┐рд▓рд╣рд╛рд▓, рд▓рд╛рдЗрди рдХрд╛ рд╡реЗрдм рд╕рд░реНрд╡рд░ рд╕реАрдорд┐рдд рд╣реИ, рдФрд░ рдХреЗрд╡рд▓ www рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХреЛрдб рдХреЙрдкреА рдХрд░рдХреЗ, рдПрдХреНрд╕реЗрд╕ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрд╛ рд╡рд╛рджрд╛ рд╣реИ рдХрд┐ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдФрд░ "рд▓рд╛рдЗрди 8.0" рдореЗрдВ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдорд╛рдирдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛: рдЕрдиреБрд░реЛрдз рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЕрдЧрд░ рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рд╣реИ, рддреЛ рд╡рд╣ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдЧрд╛ред

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

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

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

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

рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд┐рдзрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХреА рдЧрдИ рд╣реИ, рдпрд╣ "рд▓рд╛рдЗрдиреНрд╕" рдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╡рд┐рднрд╛рдЧ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╕рдордп рдХреЗ рдкрддреНрд░рд╛рдЪрд╛рд░ рдХреЛ рдЦрд░реНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд░рд╣реАред рдЪреВрдВрдХрд┐ рдРрд╕реА рдХрдард┐рдирд╛рдЗрдпрд╛рдБ рдкрд╣рд▓реА рдмрд╛рд░ рдирд╣реАрдВ рдЖрддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдмреИрд╕рд╛рдЦреА рд╣реИ, рдФрд░ рдпрд╣ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рднреА рд╡рд░реНрдгрд┐рдд рд╣реИ:
рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдЬрд╣рд╛рдВ рдорд╛рдирдХ рд╕рд╛рдзрдиреЛрдВ (HTTP рдбрд╛рдЗрдЬреЗрд╕реНрдЯ / рдмреЗрд╕рд┐рдХ рдСрдереЗрдВрдЯрд┐рдХреЗрд╢рди) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдЕрдзрд┐рдХреГрдд рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╣реЗрдбрд░ рдХреЛ рдЕрдиреБрд░реЛрдз рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднреЗрдЬрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
/kfd3ado1sdrms/streaming/main.flv?authorization=Basic%20d2ViOg==

рд╕рднреА рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХреЗ рдмрд╛рдж, рдорд╛рдирдХ рдХреНрд░реЙрд╕-рдбреЛрдореЗрди рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд▓рдЧрд╛! рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХреНрд╕реЗрдбрд░ рд╣реЗрдбрд░ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИ - рдореИрдВрдиреЗ JSON рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред

рдЕрдиреБрд░реЛрдз рдХреЛрдб:

function get_request_url(method,current_server_data, resource, additional){ var request = current_server_data.server_ip + ':' +current_server_data.port +resource+'?authorization=Basic '+ utf8_to_b64(current_server_data.user+':'+current_server_data.password); if (additional != '' && typeof additional != "undefined") { request += '&' + additional; } return request; } function http_request_of_resource (server_index , resource, auth_attempt) { var request = get_request_url('GET', servers_array[server_index], resource,''); var req_ = new XMLHttpRequest(); req_.open('GET', 'http://'+ request, true); //req_.timeout = 9000; //  ,    req_.onreadystatechange = function() { if (this.readyState == 2) { if (this.status == 401) { //console.log('---unauthorized'); hideModal(); update_nessecary_structure(resource, 'unauthorized', server_index); } } else if (this.readyState === 4) { if (this.status === 0) { hideModal(); update_nessecary_structure(resource, 'server_down',server_index) } if (this.status == 200) { if (auth_attempt) hideModal(); else resource =(resource =='/cameras') ? resource+'_update_info': resource; //console.log('200' + this.responseText); update_nessecary_structure(resource, this.responseText, server_index); } else if (this.status == 404) { //console.log('404'); update_nessecary_structure(resource, '404', server_index); } } }; //   req_.setRequestHeader('Content-type', 'text/plain; charset=utf-8'); req_.setRequestHeader('Accept', 'application/json'); req_.send(); } 

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

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

RPC рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди


рд╣рдореЗрдВ JSON (рд╕рд░реНрд╡рд░ "рд▓рд╛рдЗрдиреНрд╕ 7.1.1" рдФрд░ рдЙрдЪреНрдЪрддрд░) рдпрд╛ MessagePack (рд╕рдВрд╕реНрдХрд░рдг "рд▓рд╛рдЗрди 7.0" рдФрд░ рдЙрдЪреНрдЪрддрд░) рдХрд╛ рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ MessagePack рдХрд╛ рд╡рдЬрди рдХрдо рд╣реИ рдФрд░ рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ JSON (рдпрд╣ рдЬреЗрдПрд╕ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ) рдЪреБрдиреВрдВрдЧрд╛, рдЕрдЧрд░ рдПрдХ рдЪреАрдЬ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ: рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдлрд╝реНрд░реЗрдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдХреЗрд╡рд▓ MessagePack рдореЗрдВ рд╕рдВрднрд╡ рд╣реИред рдореБрдЭреЗ рдЙрдирдХреА рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЬрд╛рдирд╛ рдерд╛ рдФрд░ рдЬреЗрдПрд╕ рдлрд╛рдЗрд▓ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдерд╛, рдЬрд┐рд╕рдореЗрдВ рдмреЛрд░реНрдб рдкрд░ рдПрдирдХреЛрдб рдФрд░ рдбрд┐рдХреЛрдб рд╡рд┐рдзрд┐рдпрд╛рдВ рд╣реИрдВред

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

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

 function rpc_request_of_resource (current_server_data , rpc_method, rpc_request) { var request = get_request_url('POST', current_server_data, '/rpc',''); //console.log("i'm here request = " + request + ' '+ current_server_data.user); request += "&content-type='application/x-msgpack'"; var req_ = new XMLHttpRequest(); req_.open('POST', 'http://'+ request, true); //  ,    req_.responseType = 'arraybuffer'; req_.onreadystatechange = function() { if (this.readyState == 2) { if (this.status == 401) { //console.log('401' + this.getAllResponseHeaders()); console.log('unauthorized'); } } else if (this.readyState == 4) { if (this.status == 200) { //if (auth_attempt) hideModal(); //console.log('200' + this.responseText); rpc_update_nessecary_method(rpc_method, this.response); } else if (this.status == 404) { console.log('404'); } else if (this.status == 500) { //console.log('500'); rpc_update_nessecary_method(rpc_method, '500'); } } }; //   //req_.setRequestHeader('Content-type', 'text/plain; charset=utf-8'); //req_.setRequestHeader('Content-type', 'application/x-msgpack'); req_.setRequestHeader('Accept', 'application/x-msgpack'); req_.send(rpc_request); } 

рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди "рд▓рд╛рдЗрди 7.4.1" рдФрд░ рдЙрдЪреНрдЪрддрд░ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдиреАрдЪреЗ рдХреЗ рд╕рднреА рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП, / rpc рд╕рдВрд╕рд╛рдзрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

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

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

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


All Articles