Websockify: рд╕реБрдиреНрди рдЙрдкрдпреЛрдЧ рдФрд░ рдЕрдиреБрд╢рдВрд╕рд╛ рдкрд░ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 19 рдЕрдкреНрд░реИрд▓ 2013  ┬╖  2рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: novnc/websockify

рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдпрджрд┐ "numpy" рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ, рддреЛ websockify/websocket.py рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдЧрд╛:

рдЪреЗрддрд╛рд╡рдиреА: рдХреЛрдИ 'рд╕реБрдиреНрди' рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ, HyBi рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдзреАрдорд╛ рдпрд╛ рдЕрдХреНрд╖рдо рд╣реИ

рдпрд╣ рдХреБрдЫ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, HyBi рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ "рдЕрдХреНрд╖рдо" рдирд╣реАрдВ рд╣реИред рдФрд░ рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдзреАрдорд╛ рд╣реИ? рдореИрдВрдиреЗ рдиреЛрд╡реАрдПрдирд╕реА рдХреЗ рд╕рд╛рде рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рд╣реИрдВ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЬрдм рдЙрдЪреНрдЪ рдлреНрд░реЗрдо рджрд░ рдХреЗ рд╕рд╛рде рдпреВрдЯреНрдпреВрдм рд╡реАрдбрд┐рдпреЛ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ websocket.py рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рд╕реАрдкреАрдпреВ рдХреА рдЦрдкрдд рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ; рдпрд╣ рд╢рд╛рдпрдж рд╣реА рдХрднреА "рд╢реАрд░реНрд╖" рд╕реВрдЪреА рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред рддреЛ рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдБ, рдХреНрдпрд╛ рдЗрд╕ рдкрд░ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорд╛рдк рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ? рдореИрдВрдиреЗ рдХреБрдЫ рдЧреБрдЧрд▓ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рднреА рдЦреЛрдЬрдиреЗ рдореЗрдВ рдЕрд╕рдлрд▓ рд░рд╣рд╛ (рд╕реБрдиреНрди рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ ...) рдЖрдИрдПрдордПрдЪрдУ, рдЬрдм рддрдХ рд╣рдо рдпрд╣ рдорд╛рдк рдирд╣реАрдВ рд╕рдХрддреЗ рдХрд┐ numpy рдПрдХ рдмрдбрд╝рд╛ рдЕрдВрддрд░ рдмрдирд╛рддрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдорд╛рдирдХ рдкрд╛рдпрдерди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдФрд░ рдЕрдзрд┐рдХ рд╕рд╛рдл рд╣реЛрдЧрд╛ред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

"рдзреАрдорд╛ рдпрд╛ рдЕрдХреНрд╖рдо" рднрд╛рдЧ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ 4 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд╛рдпрдерди рдореЙрдбреНрдпреВрд▓ рд╣реИрдВ рдЬреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИрдВ рдФрд░ websocket.py рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рд╣реА рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪреЗрдХ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ ssl рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ, рддреЛ TLS/wss рдЕрдХреНрд╖рдо рд╣реИред рдореИрдВрдиреЗ рдЕрднреА рдПрдХ рдмрджрд▓рд╛рд╡ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдпрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

Numpy рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рддреЗрдЬрд╝ рд╣реИред Tests/latency.py + test/latency.html рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддреЗ рд╣реИрдВ (10ms рджреЗрд░реА рд╕реЗ рднреЗрдЬрддреЗ рд╣реИрдВ рдФрд░ рдмрд╕ рд╕реНрдерд╛рдиреАрдпрд╣реЛрд╕реНрдЯ рдкрд░ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ):

рдкреИрдХреЗрдЯ рдЖрдХрд╛рд░ 2000 рдмрд╛рдЗрдЯреНрд╕:

  • numpy . рдХреЗ рд╕рд╛рде 0.8ms рдФрд╕рдд рд░рд╛рдЙрдВрдбрдЯреНрд░рд┐рдк рд╡рд┐рд▓рдВрдмрддрд╛
  • 1.6ms рдФрд╕рдд рд░рд╛рдЙрдВрдбрдЯреНрд░рд┐рдк рд╡рд┐рд▓рдВрдмрддрд╛ рдмрд┐рдирд╛ numpy

рдкреИрдХреЗрдЯ рдЖрдХрд╛рд░ 20000 рдмрд╛рдЗрдЯреНрд╕:

  • numpy . рдХреЗ рд╕рд╛рде 2.5ms рдФрд╕рдд рд░рд╛рдЙрдВрдбрдЯреНрд░рд┐рдк рд╡рд┐рд▓рдВрдмрддрд╛
  • 9.2ms рдФрд╕рдд рд░рд╛рдЙрдВрдбрдЯреНрд░рд┐рдк рд╡рд┐рд▓рдВрдмрддрд╛ рдмрд┐рдирд╛ numpy

рдкреИрдХреЗрдЯ рдЖрдХрд╛рд░ 100000 рдмрд╛рдЗрдЯреНрд╕:

  • numpy . рдХреЗ рд╕рд╛рде 6.3ms рдФрд╕рдд рд░рд╛рдЙрдВрдбрдЯреНрд░рд┐рдк рд╡рд┐рд▓рдВрдмрддрд╛
  • 40.1ms рдФрд╕рдд рд░рд╛рдЙрдВрдбрдЯреНрд░рд┐рдк рд╡рд┐рд▓рдВрдмрддрд╛ рдмрд┐рдирд╛ numpy

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, 100kb рдкреИрдХреЗрдЯ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде, рди рдХреЗрд╡рд▓ рд╡рд┐рд▓рдВрдмрддрд╛ 6 рдЧреБрдирд╛ рдЕрдзрд┐рдХ рд╣реИ, рдмрд▓реНрдХрд┐ рд╕рд░реНрд╡рд░ рдкреАрдЫреЗ рдЫреВрдЯрдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди рдмрд╛рд░-рдмрд╛рд░ рдмреИрдХ рдСрдл рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ numpy рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЗрд╡рд▓ рдХреНрд▓рд╛рдЗрдВрдЯ-> рд╕рд░реНрд╡рд░ рдбреЗрдЯрд╛ рдЕрдирдорд╛рд╕реНрдХрд┐рдВрдЧ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП noVNC рдЬреИрд╕реЗ рдЙрдкрдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, websockify рд╕рд┐рд░реНрдл noVNC рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдРрд╕реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЬрд╣рд╛рдВ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд░реНрд╡рд░ рдХреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рднреЗрдЬ рд░рд╣рд╛ рд╣реИ, numpy рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рд╕рднреА 2 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

"рдзреАрдорд╛ рдпрд╛ рдЕрдХреНрд╖рдо" рднрд╛рдЧ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ 4 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд╛рдпрдерди рдореЙрдбреНрдпреВрд▓ рд╣реИрдВ рдЬреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИрдВ рдФрд░ websocket.py рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рд╣реА рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪреЗрдХ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ ssl рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ, рддреЛ TLS/wss рдЕрдХреНрд╖рдо рд╣реИред рдореИрдВрдиреЗ рдЕрднреА рдПрдХ рдмрджрд▓рд╛рд╡ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдпрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

Numpy рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рддреЗрдЬрд╝ рд╣реИред Tests/latency.py + test/latency.html рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддреЗ рд╣реИрдВ (10ms рджреЗрд░реА рд╕реЗ рднреЗрдЬрддреЗ рд╣реИрдВ рдФрд░ рдмрд╕ рд╕реНрдерд╛рдиреАрдпрд╣реЛрд╕реНрдЯ рдкрд░ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ):

рдкреИрдХреЗрдЯ рдЖрдХрд╛рд░ 2000 рдмрд╛рдЗрдЯреНрд╕:

  • numpy . рдХреЗ рд╕рд╛рде 0.8ms рдФрд╕рдд рд░рд╛рдЙрдВрдбрдЯреНрд░рд┐рдк рд╡рд┐рд▓рдВрдмрддрд╛
  • 1.6ms рдФрд╕рдд рд░рд╛рдЙрдВрдбрдЯреНрд░рд┐рдк рд╡рд┐рд▓рдВрдмрддрд╛ рдмрд┐рдирд╛ numpy

рдкреИрдХреЗрдЯ рдЖрдХрд╛рд░ 20000 рдмрд╛рдЗрдЯреНрд╕:

  • numpy . рдХреЗ рд╕рд╛рде 2.5ms рдФрд╕рдд рд░рд╛рдЙрдВрдбрдЯреНрд░рд┐рдк рд╡рд┐рд▓рдВрдмрддрд╛
  • 9.2ms рдФрд╕рдд рд░рд╛рдЙрдВрдбрдЯреНрд░рд┐рдк рд╡рд┐рд▓рдВрдмрддрд╛ рдмрд┐рдирд╛ numpy

рдкреИрдХреЗрдЯ рдЖрдХрд╛рд░ 100000 рдмрд╛рдЗрдЯреНрд╕:

  • numpy . рдХреЗ рд╕рд╛рде 6.3ms рдФрд╕рдд рд░рд╛рдЙрдВрдбрдЯреНрд░рд┐рдк рд╡рд┐рд▓рдВрдмрддрд╛
  • 40.1ms рдФрд╕рдд рд░рд╛рдЙрдВрдбрдЯреНрд░рд┐рдк рд╡рд┐рд▓рдВрдмрддрд╛ рдмрд┐рдирд╛ numpy

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, 100kb рдкреИрдХреЗрдЯ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде, рди рдХреЗрд╡рд▓ рд╡рд┐рд▓рдВрдмрддрд╛ 6 рдЧреБрдирд╛ рдЕрдзрд┐рдХ рд╣реИ, рдмрд▓реНрдХрд┐ рд╕рд░реНрд╡рд░ рдкреАрдЫреЗ рдЫреВрдЯрдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди рдмрд╛рд░-рдмрд╛рд░ рдмреИрдХ рдСрдл рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ numpy рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЗрд╡рд▓ рдХреНрд▓рд╛рдЗрдВрдЯ-> рд╕рд░реНрд╡рд░ рдбреЗрдЯрд╛ рдЕрдирдорд╛рд╕реНрдХрд┐рдВрдЧ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП noVNC рдЬреИрд╕реЗ рдЙрдкрдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, websockify рд╕рд┐рд░реНрдл noVNC рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдРрд╕реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЬрд╣рд╛рдВ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд░реНрд╡рд░ рдХреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рднреЗрдЬ рд░рд╣рд╛ рд╣реИ, numpy рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж!

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

doriwal picture doriwal  ┬╖  26рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jakoch picture jakoch  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

nvie picture nvie  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

dwt picture dwt  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

kodeshpa picture kodeshpa  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ