рджреЛрд╕реНрддреЛрдВ Socket.IO рдФрд░ backbone.js рдХреИрд╕реЗ рдмрдирд╛рдпреЗ

рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рд╕рднреА рдЬрд╛рдирддреЗ рд╣реИрдВ, backbone.js рдШрдЯрдирд╛рдУрдВ рдХреЛ рджреЛ рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:


рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореБрдЭреЗ рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдмреИрдХрдмреЛрди рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рддрд╛рдХрд┐ рд╕рдм рдХреБрдЫ рд░реАрдврд╝ рдХреА рд╣рдбреНрдбреА рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рдЕрдВрджрд░ рд╣реЛ, рддрд╛рдХрд┐ рд╕реЙрдХреЗрдЯ рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕реАрдзреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдФрд░ рд╡рд╣рд╛рдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╕рднреА рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

рд░реАрдврд╝ рдХреА рд╣рдбреНрдбреА рдХреА рд╢реИрд▓реА рд╕реЗ рд╡рд┐рдЪрд▓рди рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ рдШрдЯрдирд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рдПрд╣рд╕рд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдЬреИрд╕реЗ рдХрд┐ рдбреЛрдо рдЯреНрд░реА рдЗрд╡реЗрдВрдЯ, рдЬреИрд╕реЗ:

var im = Backbone.View.extend({ io_events: { 'new_message': 'newMessage' }, newMessage: function(message_data){ //do something } }); 

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

рдиреАрдЪреЗ рдХреА рд░реЗрдЦрд╛ред

рдЕрдВрддрддрдГ, рдПрдХ рдХреЛрдб рдХрд╛ рдЬрдиреНрдо рд╣реБрдЖ рдЬрд┐рд╕реЗ рдореИрдВ рдЖрдкрдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдиреАрдЪреЗ, рд╡рд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╡рд╣рд╛рдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ:

 var socket = io.connect('127.0.0.1:9999'); var SocketDelegationSkeleton = Backbone.View.extend({ _initSocketio: function(){ if(this.io_events && _.size(this.io_events) > 0) for(var io_event in this.io_events){ var method = this.io_events[io_event]; //       if (!_.isFunction(method)) { method = this[method]; //   _.bind(method, this); //     this socket.on(io_event, method); //   socket.io }else{ throw new Error(' ' + '"' + method + '"' + '  '); } } } }); 

рдЕрдм рдЖрдкрдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рджреГрд╢реНрдп рдЬреЛ рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛, рдХреЛ SocketDelegationSkeleton рд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдШрдЯрдирд╛рдУрдВ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░реЗрдВ рдФрд░ рдХреЙрд▓ _initSocketio(); рдХреЛ initialize рдХрд░реЗрдВ _initSocketio();

 var im = SocketDelegationSkeleton.extend({ io_events: { 'new_message': 'newMessage' }, initialize: function(){ this._initSocketio(); } newMessage: function(message_data){ //do something } }); 


рд▓рд╛рдн!

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


All Articles