рдРрд▓рд┐рд╕ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ рд╡реАрдбрд┐рдпреЛ рдЧреЗрдо, рдпрд╛ рдЧреЗрдо рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрд╡рд╛рдЬ рд╕рд╣рд╛рдпрдХ



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

рдЦреЗрд▓ рдХреЗ рдирд┐рдпрдо


рдореИрдВ рдПрд▓рд┐рд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдореМрдЬреВрджрд╛ рдЧреЗрдо рдХреЛ рдкреЛрд░реНрдЯ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдореИрдВ рдПрдХ рдореВрд▓ рдЧреЗрдо рдХреЗ рд╕рд╛рде рдЖрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдЬреЛ рдРрд▓рд┐рд╕ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

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

рдЬрд┐рд╕ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЙрд╕реЗ рдЕрдВрдХ рдорд┐рд▓рддреЗ рд╣реИрдВред рд╡рд┐рдЬреЗрддрд╛ рд╡рд╣ рд╣реИ рдЬрд┐рд╕рдиреЗ 10 рдЕрдВрдХ рдпрд╛ рдЧреЛрд▓ (2 рдорд┐рдирдЯ) рдХреЗ рджреМрд░рд╛рди рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЕрдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рд╣реИрдВред рдЧреЗрдордкреНрд▓реЗ рдПрдХ рд▓рдШреБ рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред


рд╣рдордиреЗ рдирд┐рдпрдореЛрдВ рдкрд░ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рд╣реИ - рддрдХрдиреАрдХ рдкрд░ рдЬрд╛рдПрдВред

рдирд┐рдпрдВрддреНрд░рдХреЛрдВ


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

рдЦреЗрд▓ рдХрд╛ рджреГрд╢реНрдп рднрд╛рдЧ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рд╕рднреА рдСрдмреНрдЬреЗрдХреНрдЯ: рдЦреЗрд▓ рдХрд╛ рдореИрджрд╛рди рдФрд░ HUD - рдЖрдпрддреЛрдВ, рдкрд╛рда рдФрд░ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрдирд╡рд╕ 2D рдПрдкреАрдЖрдИ рд╡рд┐рдзрд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ 50 рдПрдордПрд╕ рдореЗрдВ рдПрдХ рдмрд╛рд░, рд╕реНрдХреНрд░реАрди рдЕрдкрдбреЗрдЯ рдХреА рдЬрд╛рддреА рд╣реИред рд╕рднреА рдХреЛрдб рдПрдХ рдПрдХрд▓ HTML рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИ, рдЬрд┐рд╕рдореЗрдВ Base64 рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдПрдиреНрдХреЛрдб рдХрд┐рдП рдЧрдП рдЪрд┐рддреНрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

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

рдПрдХ рдЖрд╡рд╛рдЬ рд╕рд╣рд╛рдпрдХ рдЦреЗрд▓рдиреЗ рдХрд╛ рдХреМрд╢рд▓ рдЬреЛрдбрд╝реЗрдВред рдЕрдм рдкреНрд░рддреНрдпреЗрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рдЕрдкрдиреЗ рдлреЛрди рдпрд╛ рд╕реНрдорд╛рд░реНрдЯ рд╕реНрдкреАрдХрд░ рдкрд░ рд╡реЙрдпрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдорд╛рдЗрдХреНрд░реЛрдлрд╝реЛрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд╛рдЗрдЯ рдкрд░ рдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдВ рднреЗрдЬ рд╕рдХрддрд╛ рд╣реИред


рдмреИрдХрдПрдВрдб


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

рд╡реЗрдм рд╕реЙрдХреЗрдЯ рдмрдирд╛рдиреЗ рдФрд░ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдкрд░ рдкреБрди: рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
function start(websocketServerLocation){ ws = new WebSocket(websocketServerLocation); ws.onopen = function(){ gameN = game.id; }; ws.onclose = function(){ gameN = "--"; start(HOST); }; wsSend({"gameId": game.id}); } start(HOST); 

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

 const wss = new SocketServer({ server }); wss.on('connection', (ws) => { ws.on('close', () => { remConn(ws.gameId); }); ws.on('message', msg => { const data = JSON.parse(msg); if (data.gameId) { ws.gameId = data.gameId.toString(); addGame(ws); } }); }); 

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рд╣реА рд╕рд░реНрд╡рд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдкреЗрдЬ рд░реЗрдВрдбрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдРрд▓рд┐рд╕ рдХреЗ рд╡реЗрдм рд╣реБрдХ рдХрд╛ рдЬрд╡рд╛рдм рджреЗ рд╕рдХрддрд╛ рд╣реИ:

 var server = express().use(bodyParser.json()).use('*', (req, res) => { if (req.body && req.body.request) { //   toAnswer  - res.json({ version: req.body.version, session: req.body.session, response: toAnswer, }); } else { // -   res.sendFile(INDEX); } }).listen(PORT); 

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


рдкрд░рд┐рдгрд╛рдо рдХрдВрдкрдиреА рдХреЗ рд▓рд┐рдП рдПрдХ рдореВрд▓ рд╡реАрдбрд┐рдпреЛ рдЧреЗрдо рдерд╛ред рдЗрд╕реЗ рдРрд▓рд┐рд╕ рдореЗрдВ 28 рдирд╡рдВрдмрд░, 2018 рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдореИрдВ рдЗрд╕ рдЖрд╡рд╛рдЬ рд╕рд╣рд╛рдпрдХ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ рд╡реАрдбрд┐рдпреЛ рдЧреЗрдо рдмрди рдЧрдпрд╛ред

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

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


All Articles