рдирдорд╕реНрддреЗ,
Socket.io рдкрд░ рдорддрджрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдореБрдЭреЗ рдмрд╣реБрдд рд╕реЗ 400 HTTP рд╢реАрд░реНрд╖рд▓реЗрдЦ рдорд┐рд▓ рд░рд╣реЗ рд╣реИрдВред
рдореИрдВ рдиреЛрдбрдЬ рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:
рдпрд╣рд╛рдБ рдХреЛрдб рдХрд╛ рдЯреБрдХрдбрд╝рд╛ рд╣реИ:
рдЕрдЧрд░ (рдХреНрд▓рд╕реНрдЯрд░.рдЗрд╕рдорд╛рд╕реНрдЯрд░) {
// рдХрд╛рдВрдЯрд╛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ред
// numCPUs = 1;
рдХреЗ рд▓рд┐рдП (var i = 0; i < numCPUs-1; i++) {
рдХреНрд▓рд╕реНрдЯрд░ред рдХрд╛рдВрдЯрд╛ ();
}
}
// рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЛрдб:
рдЕрдиреНрдпрдерд╛{
var socket_io = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('рд╕реЙрдХреЗрдЯ.io') (рд╕рд░реНрд╡рд░);
рд╡рд░ redis_adapter = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('socket.io-redis');
socket_io.adapter(redis_adapter({host: config.redis.ip, port: config.redis.port}));
// рдмрд╛рдХреА рдХреЛрдб
рд╕реЙрдХреЗрдЯ_рдЖрдИрдУ.рдСрди ('рдХрдиреЗрдХреНрд╢рди', рдлрд╝рдВрдХреНрд╢рди (рд╕реЙрдХреЗрдЯ) {
}
рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ рдХреЛрдИ рд╕рдВрдХреЗрддрдХ рд╕рд╣рд╛рдпрдХ рд╣реЛрдЧрд╛ред
рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдзрдиреНрдпрд╡рд╛рдж
рдирдорд╕реНрддреЗ! рдореБрдЭреЗ socket.io рдХреЗ рд╕рд╛рде рдХреНрд▓рд╕реНрдЯрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдкрд░реЗрд╢рд╛рдиреА рд╣реБрдИ, рдХреНрдпреЛрдВрдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рд╣реИрдВред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдХрд╛рдордХрд╛рдЬреА рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореИрдВ рдХреБрдЫ рд░рд╛рд╕реНрдкрдмреЗрд░реАрдкреА рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реВрдВ
https://github.com/jordanpappas/raspi-car/tree/master/server
рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдП рдЖрдк рд▓рд┐рдВрдХ рдореЗрдВ рдЗрдВрдбреЗрдХреНрд╕ рдлрд╝рд╛рдЗрд▓ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреБрдЫ рдЪреАрдЬреЗрдВ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреА рд╣реЛрдВрдЧреАред
var io = sio(server, { 'transports': ['websocket'] });
рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдкрд░:
var socket = io.connect('http://localhost:3000', { 'transports': ['websocket'] });
рдпрд╣ рдЖрдкрдХреЛ рд╕рд╣реА рджрд┐рд╢рд╛ рдореЗрдВ рдЖрдЧреЗ рдмрдврд╝рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдореИрдВ рдПрдХ рд╕рд╛рде рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЙрджрд╛рд╣рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░реВрдВрдЧрд╛ред
рдЬрд╝рд░реВрд░ рдзрдиреНрдпрд╡рд╛рджредрдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ред рдореИрдВ рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЗ рдЕрдВрджрд░ рдЪрд┐рдкрдЪрд┐рдкрд╛ рд╕рддреНрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ рдЬреЛ рдХрд┐ рдЧрд▓рдд рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реНрд╡рдпрдВ рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЛ рдмрдирд╛рддрд╛ рд╣реИред
рд╡рд╣ рдореБрджреНрджрд╛ рдЕрдкрдиреЗ рдЖрдк рдмрдВрдж рд╣реЛ рдЧрдпрд╛ред рдХреГрдкрдпрд╛ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реЗрдВ (рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдХ рдкрд╣реЗрд▓реА рдХреЗ рд╕рд╛рде)ред
4 рдШрдВрдЯреЗ рдмрд░реНрдмрд╛рдж рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдореЗрдВ
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдирдорд╕реНрддреЗ! рдореБрдЭреЗ socket.io рдХреЗ рд╕рд╛рде рдХреНрд▓рд╕реНрдЯрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдкрд░реЗрд╢рд╛рдиреА рд╣реБрдИ, рдХреНрдпреЛрдВрдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рд╣реИрдВред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдХрд╛рдордХрд╛рдЬреА рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореИрдВ рдХреБрдЫ рд░рд╛рд╕реНрдкрдмреЗрд░реАрдкреА рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реВрдВ
https://github.com/jordanpappas/raspi-car/tree/master/server
рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдП рдЖрдк рд▓рд┐рдВрдХ рдореЗрдВ рдЗрдВрдбреЗрдХреНрд╕ рдлрд╝рд╛рдЗрд▓ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреБрдЫ рдЪреАрдЬреЗрдВ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреА рд╣реЛрдВрдЧреАред
рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдкрд░:
рдпрд╣ рдЖрдкрдХреЛ рд╕рд╣реА рджрд┐рд╢рд╛ рдореЗрдВ рдЖрдЧреЗ рдмрдврд╝рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдореИрдВ рдПрдХ рд╕рд╛рде рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЙрджрд╛рд╣рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░реВрдВрдЧрд╛ред