Socket.io: рд╕реЙрдХреЗрдЯ рдкрд░ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 30 рдирд╡ре░ 2017  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: socketio/socket.io

рдиреЛрдЯ : рд╕рдорд░реНрдерди рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд▓рд┐рдП, рдХреГрдкрдпрд╛ рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдЪреИрдирд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдпрд╛

рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐:

  • [x] рдПрдХ рдмрдЧ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВ
  • [] рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ

рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░

рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЛ рдбреЗрдЯрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдФрд░ рдЙрд╕рдХреЗ рднреАрддрд░ тЙе (рдпрд╛ рдпреВрдирд┐рдХреЛрдб \u2265 ) рдХреА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдЗрд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЕрдХреНрд╖рд░ e рдФрд░ тЙд d

рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо (рдпрджрд┐ рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдПрдХ рдмрдЧ рд╣реИ)

рдЧреНрд░рд╛рд╣рдХ рдХреА рдУрд░

channel.emit('data', {data:'тЙе'});

рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб

socket.on('data',({data:bla})=>{
console.log(bla); // prints 'e'
});

рдиреЛрдЯ: рдПрдХ рддреНрд╡рд░рд┐рдд рдЬрд╡рд╛рдм рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИ рдПрдХ рдЕрд╕рдлрд▓ рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдорд╛рдорд▓рд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рддреЛ рдирд┐рдореНрди forking рд╕реЗ рд╣реИ рдмреЗрд▓рд╛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдПред

рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░

рдХрд┐ рдбреЗрдЯрд╛ рд▓рдЧрд╛рддрд╛рд░ рд╡рд╣реА рд░рд╣реЗрдЧрд╛

рд╕реЗрдЯ рдЕрдк

  • рдУрдПрд╕: рд╡рд┐рдВрдбреЛрдЬрд╝
  • рдмреНрд░рд╛рдЙрдЬрд╝рд░: рдХреНрд░реЛрдо 62
  • рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ рд╕рдВрд╕реНрдХрд░рдг: 1.7.2

рдЕрдиреНрдп рдЬрд╛рдирдХрд╛рд░реА (рдЬреИрд╕реЗ рд╕реНрдЯреИрдХрдЯреНрд░реЗрд╕, рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЗ, рд╕реБрдЭрд╛рд╡ рдХреИрд╕реЗ рдареАрдХ рдХрд░реЗрдВ)

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

2.0.4 рдХреЗ рд╕рд╛рде рдХреЛрд╢рд┐рд╢ рдХреА, рдЕрднреА рднреА рд╣реЛрддрд╛ рд╣реИ ...
рдЗрд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рдХреЛ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдФрд░ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рддрдп рдХрд┐рдпрд╛:
рдЧреНрд░рд╛рд╣рдХ рдХреА рдУрд░

function strencode( data ) {
    return encodeURIComponent( escape( JSON.stringify( data ) ) );
}

рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб

function strdecode( data ) {
    return JSON.parse( unescape( decodeURIComponent( data ) ) );
}

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

рдпрд╣ рддрднреА рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╕реЙрдХреЗрдЯ xhr рдкрд░ рдЕрдкрдЧреНрд░реЗрдб рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ (рдкрд╣рд▓рд╛ рдЙрдкрдпреЛрдЧ),
рд╡реЗрдмрд╕реЛрдХреЗрдЯ рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╕рднреА рдбреЗрдЯрд╛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ

#451 рдФрд░ #572 рджреЗрдЦреЗрдВ

рд╕рдВрд╕реНрдХрд░рдг 1.x рдореЗрдВ utf8 рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдереА, рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рд╕рдВрд╕реНрдХрд░рдг 2.x рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рд╕рдореНрдмрдВрдзрд┐рдд:

2.0.4 рдХреЗ рд╕рд╛рде рдХреЛрд╢рд┐рд╢ рдХреА, рдЕрднреА рднреА рд╣реЛрддрд╛ рд╣реИ ...
рдЗрд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рдХреЛ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдФрд░ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рддрдп рдХрд┐рдпрд╛:
рдЧреНрд░рд╛рд╣рдХ рдХреА рдУрд░

function strencode( data ) {
    return encodeURIComponent( escape( JSON.stringify( data ) ) );
}

рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб

function strdecode( data ) {
    return JSON.parse( unescape( decodeURIComponent( data ) ) );
}

рд╣рд╛рдБ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж!

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

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

Elliot9 picture Elliot9  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

рдЬрдм рдЕрдиреБрд░реЛрдз рдХрд╛ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдореЛрдб 'рд╢рд╛рдорд┐рд▓' рд╣реЛ, рддреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ 'рдкрд╣реБрдВрдЪ-рдирд┐рдпрдВрддреНрд░рдг-рдЕрдиреБрдорддрд┐-рдЙрддреНрдкрддреНрддрд┐' рд╢реАрд░реНрд╖рд▓реЗрдЦ рдХрд╛ рдорд╛рди рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб '*' рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрддреНрдкрддреНрддрд┐ 'http://localhost:3000' рдЗрд╕рд▓рд┐рдП рдкрд╣реБрдВрдЪ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИред XMLHttpRequest рджреНрд╡рд╛рд░рд╛ рд╢реБрд░реВ рдХрд┐рдП рдЧрдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдореЛрдб withCredentials рд╡рд┐рд╢реЗрд╖рддрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
akasrai picture akasrai  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Aweather picture Aweather  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

shashuec picture shashuec  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ