рд╢реБрдн рджрд┐рди, рджреЛрд╕реНрддреЛрдВ!
рдПрдХ рд╕реЗрд╡рд╛ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдЬрд┐рд╕рдХрд╛
рдлреНрд░рдВрдЯ рдПрдВрдЧреБрд▓рд░рдЬреЗрдПрд╕ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡рд┐рднрд┐рдиреНрди рд▓реЙрдЬрд┐рдХрд▓ рдЪреИрдирд▓реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ
рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рдЧрдпрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рд░реНрд╡рд░ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рднреМрддрд┐рдХ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдкрд╛рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рдереА рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЪреИрдирд▓ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рдХрдиреЗрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдХреНрдпрд╛ рд╣реБрдЖ, рдЖрдк рдХрдЯ рдХреЗ рдиреАрдЪреЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

socket.io рдирд╛рдорд╕реНрдерд╛рди
рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛,
рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ рдкреБрд╕реНрддрдХрд╛рд▓рдп рддрдерд╛рдХрдерд┐рдд
рдирд╛рдорд╕реНрдерд╛рди рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рд╣реА рднреМрддрд┐рдХ рдХрдиреЗрдХреНрд╢рди рдХреЗ рднреАрддрд░ рд╡рд┐рднрд┐рдиреНрди рдЙрдк рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рд╕реЗ рдорд▓реНрдЯреАрдкреНрд▓реЗрдХреНрд╕ рд╕рдВрджреЗрд╢реЛрдВ рдХреА рдорджрдж рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
var channelMessages = io.connect('http://localhost:3000/messages'), channelMessages.on('message received', function() { });
рдпрд╛рдиреА рдкреНрд░рддреНрдпреЗрдХ
io.connect
рдХреЙрд▓ рдПрдХ рдирдпрд╛ рдХрдиреЗрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ
on
рдФрд░
io.connect
emit
ред рдпрд╣ рдРрд╕реЗ рдХрдиреЗрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдерд╛ рдЬреЛ рдореИрдВ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдПрдХ AngularJS рд╕реЗрд╡рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред
AngularJS рд╕реЗрд╡рд╛ рд╕реЙрдХреЗрдЯ v.1
рдХрдИ рдирд╛рдорд┐рдд рд╕реЙрдХреЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рдХреЗ рд╕рдордп, рд╕реЙрдХреЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╕реЗрд╡рд╛ред рдЗрд╕
рд▓реЗрдЦ рдореЗрдВ рд╡рд┐рд╡рд░рдг рдХреА рддрд░рд╣ рдХреБрдЫ рджреЗрдЦрд╛ рдЧрдпрд╛ред
app.factory('socket', function ($rootScope) { var socket = io.connect(); return { on: function (eventName, callback) { socket.on(eventName, function () { var args = arguments; $rootScope.$apply(function () { apply(socket, args); }); }); }, emit: function (eventName, data, callback) { socket.emit(eventName, data, function () { var args = arguments; $rootScope.$apply(function () { if (callback) { callback.apply(socket, args); } }); }) } }; });
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдПрдХ рдЖрджрд┐рдо рдЖрд╡рд░рдг рд╣реИ рдЬрд┐рд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреА рдкреБрд╖реНрдЯрд┐ / рдкреБрд╖реНрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╕рдордп рд╕рднреА рд╕реНрдХреИрдк рдХреЗ рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░рдгреА рдФрд░
emit
рд╣реЛрддрд╛ рд╣реИред рд╕реЗрд╡рд╛ рдХреЗ рдкреНрд░рд╛рд░рдВрдн рдХреЗ рджреМрд░рд╛рди рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдПрдХ рдмрд╛рд░ рд╣реЛрддрд╛ рд╣реИ (рдЪреВрдВрдХрд┐ рд╕реЗрд╡рд╛рдУрдВ рдХреА "рд╕рд┐рдВрдЧрд▓рдЯрди" рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП AngularJS рдПрдХ рдмрд╛рд░
factory
рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ)ред
рддреНрдпрд╛рдЧрд╣рд░ рдЫреАрдВрдХ рдХреЗ рд▓рд┐рдП рд╕рднреА рд╕реНрдХреЛрдк рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЖрдкрдХреЛ $apply()
рд╕реЗ рдЕрдкрдбреЗрдЯ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдХрдо рд╕реЗ рдХрдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдЗрд╕ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдХ рдЕрдкрдорд╛рдирдЬрдирдХ рд╣реИред
рдиреЗрдорд╕реНрдкреЗрд╕ рдХреЗ рдЖрдЧрдорди рдХреЗ рд╕рд╛рде, рд╕реЙрдХреЗрдЯ рд╕реЗрд╡рд╛ рдХреЛ рдЖрд░рдореНрдн рдХрд░рдиреЗ рдХреЗ рд╕рдордп рд╕рд░реНрд╡рд░ рд╕реЗ рд╕рдВрдмрдВрдз рдмрдирд╛рдиреЗ рдХрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред рд╕рд╛рде рд╣реА, рд╕реЗрд╡рд╛ рдХреЗ рдХрдИ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЪреИрдирд▓ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдФрд░ рдПрдХ рдФрд░ рд╕реНрдкрд╖реНрдЯ рдЖрд╡рд╢реНрдпрдХрддрд╛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдирд╛рдо рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рддреЗ рд╕рдордп рдХреЛрдб рджреЛрд╣рд░рд╛рд╡ рд╕реЗ рдмрдЪрдиреЗ рдХреА рд╣реИред
AngularJS рд╕реЗрд╡рд╛ рд╕реЙрдХреЗрдЯ v.2
рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЗрд╕ рдмрд┐рдВрджреБ рдХреЗ рдЖрд╕рдкрд╛рд╕, рдХреБрдЫ рд╕рдВрдЬреНрдЮрд╛рдирд╛рддреНрдордХ рдЕрд╕рдВрдЧрддрд┐ рдЖ рдЧрдИ рд╣реИред рдХрдИ рдирд╛рдорд┐рдд рдХрдиреЗрдХреНрд╢рди рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдПрдВрдЧреБрд▓рд░рдЬреЗрдПрд╕ рдореЗрдВ рд╕реЗрд╡рд╛ рд╕рд┐рдВрдЧрд▓рдЯрди рд╣реИред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкрд╣рд▓рд╛ рдкреНрд░рдпрд╛рд╕ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдерд╛ рдХрд┐ рдПрдВрдЧреБрд▓рд░рдЬреЗрдПрд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдмреЙрдХреНрд╕ рдХреЗ рдмрд╛рд╣рд░ рдХреБрдЫ рд╕рдорд╛рди рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рд╕реЗрд╡рд╛рдУрдВ
рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рдХрдо рд╕реЗ рдХрдо
3 рддрд░реАрдХреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рд╕рд░рд▓
module.service
рд╣реИред
module.service
, рдЬрд┐рд╕реЗ рдирд┐рд░реНрдорд╛рддрд╛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдорд╛рдВрдЧ рдкрд░ рдПрдХ рд╕реЗрд╡рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдереЛрдбрд╝рд╛ рдФрд░ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛ рддрд░реАрдХрд╛
module.factory
, рдЬреЛ рд╕реЗрд╡рд╛ рдореЗрдВ рд╡рд╛рдкрд╕ рдЖрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рддрд╛ рд╣реИред рдФрд░ рд╕рдмрд╕реЗ рд▓рдЪреАрд▓рд╛ рддрд░реАрдХрд╛ рд╣реИ
module.provider
ред рдирд╛рдо рд╕реЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдпрд╣ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рджрд╛рддрд╛ рдкрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдореЙрдбреНрдпреВрд▓ рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдФрд░ рдирд╛рдорд┐рдд рдХреЛрдб
/foo
рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдореЗрдВ
socketsProvider.get('foo')
рдЬреИрд╕реЗ рдХреБрдЫ рд▓рд┐рдЦрдирд╛ рд╕рдВрднрд╡ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐,
module.provider
рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рд╕реЗрд╡рд╛ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдкреНрд░рджрд╛рддрд╛ рдкрд░, рдмрд▓реНрдХрд┐ рд╕реАрдзреЗ, рд╕реЗрд╡рд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╕рд╣рдХрд░реНрдорд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдкреНрд░рдердо рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ
namespace
рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝рдХрд░ рд╕реЙрдХреЗрдЯ рд╕реЗрд╡рд╛ рдХреЗ
on
рдФрд░
emit
рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдЖрдпрд╛, рдФрд░ рд╕реЗрд╡рд╛ рдХреЗ рдЕрдВрджрд░ рдЖрд▓рд╕реА рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдПрдХ рдкреВрд▓ рд░рдЦрд╛ред рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓
on
рдпрд╛
emit
, рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдХрдиреЗрдХреНрд╢рди рдкрд╣рд▓реЗ рд╕реЗ рджрд┐рдП рдЧрдП рдирд╛рдорд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рдореМрдЬреВрдж рд╣реИ, рдФрд░ рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдПрдХ рдирдпрд╛ рдмрдирд╛рдПрдВред рдФрд░ рдирд╛рдорд┐рдд рдХрдиреЗрдХреНрд╢рди рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП, рд╣рд▓реНрдХреЗ рд╕реЗрд╡рд╛рдУрдВ
socketFoo
,
socketBar
, рдЗрддреНрдпрд╛рджрд┐ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛, рдЙрдирдХреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реЛрдиреЗ рдФрд░
emit
рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
socket.on
рдФрд░
socket.emit
рдХрд░рдирд╛, рдирд╛рдо рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ 'рдлреВ' рдФрд░ 'рдмрд╛рд░' рдХреЗ рдирд┐рд░рдВрддрд░ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд░рдирд╛ред рдПрдХ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╕рдорд╛рдзрд╛рди, рд▓реЗрдХрд┐рди рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрдореА рдХреЗ рд╕рд╛рде - рд╕реЙрдХреЗрдЯ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕реЗрдЯ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреЗ рд╕рдордп,
socketFoo
рдФрд░
socketBar
рд╕реЗрд╡рд╛ рдЧреНрд░рд╛рд╣рдХ рдореМрдЬреВрджрд╛
socketFoo
рдФрд░
socketBar
рд╕реЗрд╡рд╛ рдХреЛрдб рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдирдП рд╕реЙрдХреЗрдЯ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред
рдЕрдкрдиреЗ рджрд┐рдорд╛рдЧ рдХреЛ рд▓реБрдЯрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдереЛрдбрд╝рд╛ рдФрд░ рдпрд╛рдж рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ рдХрд┐ рдХреЛрдИ рднреА рд╡рд╕реНрддреБ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдлрдВрдХреНрд╢рди рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЕрдВрдЧрд░реЗрдЬреЛрдВ рдХреА рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддреА рд╣реИ! рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдХреНрд▓рд╛рд╕рд┐рдХ рдкреИрдЯрд░реНрди рдирд┐рдореНрди рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
var module = angular.module('myApp.services', []); app.factory('MyService', function() { function MyService(options) { } MyService.prototype.baz = function() { }; MyService.prototype.qux = function() { }; return MyService; });
рди рдХреЗрд╡рд▓ рд╕реЗрд╡рд╛ рдмрдирд╛рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдирд╛рдордХрд░рдг рдХрд╛ рддрд░реАрдХрд╛ рднреА рдмрджрд▓ рдЧрдпрд╛ рд╣реИред рдкрд╛рд░рдВрдкрд░рд┐рдХ
camelCase
рдмрдЬрд╛рдп (рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдо рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ),
CamelCase
рдЙрдкрдпреЛрдЧ рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕реЗрд╡рд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдирд┐рд░реНрдорд╛рддрд╛ рд╣реИред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП,
Socket
рд╕реЗрд╡рд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
Socket.js var services = angular.module('myApp.services', []); services.factory('Socket', ['$rootScope', function($rootScope) { var connections = {};
рдирд╛рдорд┐рдд рдХрдиреЗрдХреНрд╢рди рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдЬрд┐рд╕ рдкрд░ рдЧреНрд░рд╛рд╣рдХ рдореЙрдбреНрдпреВрд▓ рдирд┐рд░реНрднрд░ рдХрд░реЗрдЧрд╛, рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:
Examples.js var services = angular.module('myApp.services.channels', []);
рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмрдирд╛рдП рдЧрдП рдЪреИрдирд▓ рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕реЙрдХреЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рд╕рднреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рд▓рд╛рдн рд╣реЛрддрд╛ рд╣реИ, рдФрд░
socket.on
рдФрд░
socket.emit
рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд╛рдлреА рдХрдо рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
Socket
рд╕реЗрд╡рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдЙрджрд╛рд╣рд░рдг рдХреЗрд╡рд▓ рдПрдХ рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдкреВрд░реНрдг рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ
io
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛, рдХрдиреЗрдХреНрд╢рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдФрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕, рд╕рд╛рде рд╣реА рд╕рд░реНрд╡рд░ рд╕реЗ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╕рдордп рдЕрджреНрдпрддрди рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрдХреЛрдк рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдкреВрд░рдХ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдХреЛрдб
рдЬреАрдердм рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред