CoronaSDK, Gideros, Moai рдкрд░ рдорд▓реНрдЯреАрдкреНрд▓реЗрдпрд░ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рдкреНрд░рдХрд╛рд╢рди-рд╕рджрд╕реНрдпрддрд╛

рдПрдХ рдмрд╛рд░, рдПрдХ рд╕рд╣рдпреЛрдЧреА рдХреЛ рдХреЛрд░реЛрдирд╛рдПрд╕рдбреАрдХреЗ рдкрд░ рд░рд┐рдпрд▓рдЯрд╛рдЗрдо рдорд▓реНрдЯреАрдкреНрд▓реЗрдпрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдкрд╣рд▓реЗ рддреЛ рд╣рдордиреЗ pubnub.com рд╕реЗрд╡рд╛ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдЕрдВрддрддрдГ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдЙрдирдХреА рд╡рд┐рд▓рдВрдмрддрд╛ (рдЙрдирдХреЗ рдкрд╛рд╕ http рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдм рдХреБрдЫ рд╣реИ) рдФрд░ рдХреАрдорддреЗрдВ рдЙрдирдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рдереАрдВред рдХреБрдЫ рднреА рдмреЗрд╣рддрд░ рдирд╣реАрдВ рдорд┐рд▓рдиреЗ рдкрд░, рдЙрдиреНрд╣реЛрдВрдиреЗ Node.js (рдпрд╛ рд╕реНрдХреВрдЯрд░ рдХреЗ рдмрдЬрд╛рдп, рдХреНрдпреЛрдВрдХрд┐ рдкреВрд░рд╛ рд╕рд░реНрд╡рд░ рдХреЛрдб рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде 90 рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдлрд┐рдЯ рд╣реЛрддрд╛ рд╣реИ) рдкрд░ рдПрдХ рдмрд╛рдЗрдХ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

рдЙрдиреНрд╣реЛрдВрдиреЗ рдордЬрд╛рдХ рдореЗрдВ рдиреЛрдмрд╣рдм рдХрд╣рд╛ред WTFPL рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред


рдмрд╛рдд рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдирд┐рдХрд▓реА рдФрд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рд╕рдореАрдХреНрд╖рд╛рдУрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдмрд┐рдирд╛ рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдФрд░ рдореЗрдореЛрд░реА рд▓реАрдХ рдХреЗ рд╕рд░реНрд╡рд░ рдкрд░ рдорд╣реАрдиреЛрдВ рддрдХ рдШреВрдордиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред рд╕рд┐рд╕реНрдЯрдо рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ: Node.js 0.6.x рдФрд░ рдЙрдЪреНрдЪрддрд░ (рдорд╛рдирдХ Ubuntu рдкреИрдХреЗрдЬ рдореЗрдВ рд╢рд╛рдорд┐рд▓), рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдореЙрдбреНрдпреВрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдпрджрд┐ рдЖрдк рдХреЛрд░реЛрдирд╛рдПрд╕рдбреАрдХреЗ, рдореЛрдИ рдпрд╛ рдЧрд┐рдбрд░реЛрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реБрдЖ рдкрд░ рдПрдХ рдореЛрдмрд╛рдЗрд▓ рдорд▓реНрдЯреАрдкреНрд▓реЗрдпрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЕрдЪреНрдЫреА рдЦрдмрд░ рд╣реИ: рдЧреНрд░рд╛рд╣рдХ рдЗрди рдПрд╕рдбреАрдХреЗ рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рд▓реЗ рд▓реЛ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рдХреБрдЫ рддрдереНрдп:



рдХреЗ рдЙрдкрдпреЛрдЧ


рд╣рдордиреЗ рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд┐рдпрд╛:
$ node server.js
рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛:
 hub = noobhub.new({ server = "127.0.0.1"; port = 1337; }); 

рдЪреИрдирд▓ рдореЗрдВ рд╕рджрд╕реНрдпрддрд╛ рд▓реА, рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╣рдо рдЕрдиреНрдп рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЗ рд╕рдВрджреЗрд╢ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
 hub:subscribe({ channel = "hello-world"; callback = function(message) if(message.action == "ping") then print("Pong!") end; end; }); 

рд╕рдВрджреЗрд╢ рднреЗрдЬрд╛ рдЧрдпрд╛:
  hub:publish({ message = { action = "ping", timestamp = system.getTimer() } }); 


рдмреЛрд░рд┐рдВрдЧ рд╡рд┐рд╡рд░рдг


Node.js рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдПрдХ рдореБрдЦреНрдп рддрддреНрд╡ рд╕рд░реНрд╡рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ, рдЬреЛ рдкреЛрд░реНрдЯ рдкрд░ рд╕реБрдирддрд╛ рд╣реИ рдФрд░ рдХрдиреЗрдХреНрд╢рди рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИред рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП, рдмрд╛рдж рдореЗрдВ рдЦреЛрдЬ рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рд╣реИрд╢ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реЙрдХреЗрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕реЙрдХреЗрдЯреНрд╕, рдмрджрд▓реЗ рдореЗрдВ, рдбреЗрдЯрд╛ рд░рд┐рд╕реЗрдкреНрд╢рди рдФрд░ рдХрдиреЗрдХреНрд╢рди рдХреНрд▓реЛрдЬрд░ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реБрдирддреЗ рд╣реИрдВред
рд╡реЗ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдкрд╣рдЪрд╛рдирддреЗ рд╣реИрдВ: __SUBSCRIBE____ENDSUBSCRIBE__ - рдЪреИрдирд▓ рдХреА рд╕рджрд╕реНрдпрддрд╛,
__JSON__START_ <_MESSAGE> __JSON__END__ - рдПрдХ рдордирдорд╛рдирд╛ рд╕рдВрджреЗрд╢ред рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрддреЗ рд╕рдордп, рд╕реЙрдХреЗрдЯ рдХреЛ CHANNELNAME рдкреВрд▓ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдмрд╛рдж рдореЗрдВ рдЗрд╕ рдЪреИрдирд▓ рдкрд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд╕рдВрджреЗрд╢ рдирдП рдЪреЗрд╣рд░реЗ рдкрд░ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред рджреВрд╕рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдВрджреЗрд╢ рдХреЗ рд╢рд░реАрд░ рдХреЛ CHANNELNAME рдХреЗ рд╕рднреА рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рдкрд░ рд╕реЙрдХреЗрдЯ рдмрдВрдж рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рд╕рд░реНрд╡рд░ рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рдбрд┐рд╕рдЯрд░ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИред
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдПрдХ EventLoop рдиреЛрдб рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдЕрдкрдиреЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рд╕реЙрдХреЗрдЯ рдореЗрдВ рдкреИрдХреЗрдЬрд┐рдВрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕рд╛рд░рд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдХрдИ рдЧреНрд░рд╛рд╣рдХ рд╣реИрдВ, рддреЛ рдПрдХ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдмрдврд╝рд╛ рд╣реБрдЖ рдЪрдХреНрд░ рд╕рдВрджреЗрд╢реЛрдВ рдХреА рдбрд┐рд▓реАрд╡рд░реА рдореЗрдВ рджреЗрд░реА рдХрд░реЗрдЧрд╛ред рдмреЗрд╢рдХ, рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдХрд┐рддрдиреЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдЖрдкрдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рддрд╛рдХрд┐ рдбреНрд░реЙрдбрд╛рдЙрди рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реЛред 2k CCU рдХреЗ рд╕рд╛рде, рд╡рд┐рд▓рдВрдмрддрд╛ рдХрдорд┐рдпрд╛рдВ рдирд╣реАрдВ рджреЗрдЦреА рдЧрдИрдВ (рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмрд╕ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИ), рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ 20k рдПрдХ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдбреНрд░рд╛рдбрд╛рдЙрди рджреЗрдЧрд╛ред
рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░, рд╕рдм рдХреБрдЫ рдмрд┐рд▓реНрдХреБрд▓ рд╡рд┐рдкрд░реАрдд рд╣реИ, рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЙрдХреЗрдЯ рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрддрд╛ рд╣реИ, рдЪреИрдирд▓ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрддрд╛ рд╣реИ, рдФрд░ рдЕрдиреНрдп рдЪреИрдирд▓ рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рд╕реБрдирддрд╛ рд╣реИред
рдмреНрд░реЗрдХ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреБрди: рдХрдиреЗрдХреНрдЯ рдФрд░ рдкреБрдирд░реНрд╡рд┐рдХреНрд░рдп рд╣реЛрддрд╛ рд╣реИ (рдпрд╣ EDGE / 3G рдкрд░ рдЦрд░рд╛рдм рдХрдиреЗрдХреНрдЯрд┐рд╡рд┐рдЯреА рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИ)ред

рдХреБрд▓: рдЫреЛрдЯреА рдФрд░ рдордзреНрдпрдо рдЖрдХрд╛рд░ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рдкреНрд░рдХрд╛рд╢рди-рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдВред


рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб: https://github.com/Overtorment/NoobHub

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


All Articles