Chatter - python 2.7 рдмрд╡рдВрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╡реЗрдмрд╕реИрдЯ-рдлреНрд░реЗрдорд╡рд░реНрдХ рдЖрдзрд╛рд░рд┐рдд

рдореИрдВ рд╕рдореБрджрд╛рдп рдХреЛ рдЕрдкрдиреА рдЫреЛрдЯреА рд░рдЪрдирд╛ - рдЪрдЯрд░ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдЪреЗрдЯрд░ рдкрд╛рдпрдерди 2.7 рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдмрд╡рдВрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдЕрдЬрдЧрд░ (рдмреИрдХрдПрдВрдб) рдФрд░ js (рдлреНрд░рдВрдЯрдПрдВрдб) рдХреЗ рд▓рд┐рдП рдПрдХ рддреИрдпрд╛рд░ рдПрдкреАрдЖрдИ рд╣реИ

рдЧрд┐рддреБрдм рдкрд░ рдирдореВрдиреЗ рдФрд░ рд╕реНрд░реЛрдд рдХреЛрдбред

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпреЛрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛?





рддреНрд╡рд░рд┐рдд рдФрд░ рдЖрд╕рд╛рди рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдПред рдЦреБрдж рдХрд╛ "рдкреНрд░реЛрдЯреЛрдХреЙрд▓" рд╣реИ - рдЬреЛрд╕рди рдХреЗ рдКрдкрд░ рдПрдХ рдЖрд╡рд░рдгред

"рдПрдкреНрд▓рд┐рдХреЗрд╢рди" рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рдВрд░рдЪрдирд╛:

from chatter import BaseSocketHandler, run_application, Clients class Example1SocketHandler(BaseSocketHandler): #  namespace  -        group = 'example1' def main(): #Tornado-handler' run_application([ (r'/example1', Example1SocketHandler), ]) if __name__ == '__main__': main() 


рдПрдк рдлреЛрд▓реНрдбрд░ рдореЗрдВ рдПрдк рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рдХрдорд╛рдВрдб рдЬрдорд╛ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдлрд╝реЛрд▓реНрдбрд░ рд╕рдВрд░рдЪрдирд╛:




рдЕрдзрд┐рдХ рдХреБрдЫ рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдП - рдЬрдм рд╕реЗрд╡рд╛ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ, рддреЛ рдПрдкреАрдЖрдИ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ "рд╡рд┐рдзрд┐рдпреЛрдВ" рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рддрд░реАрдХреЛрдВ рдХреА рдПрдХ рдкреЗрдбрд╝ рдЬреИрд╕реА рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЧрддрд┐рд╢реАрд▓ рдЕрджреНрдпрддрди рд╕рдорд░реНрдерд┐рдд рд╣реИ (рдЙрджрд╛рд╣рд░рдг - git - рдЪреИрдЯ рдореЗрдВ)ред

рд╡рд┐рдзрд┐ рдлрд╝рд╛рдЗрд▓ (/api/example1/hello/world.py):

 class __api_result__(APIMethod): #  ,     -  ""  def run(self, text1, text2, text3): #  - tuple #  - dict- # - success (  - True / False) return ({'text': [text1, text2, text3]}, True) 


рдФрд░ рдЕрдм html-js рд╣рд┐рд╕реНрд╕рд╛:

 <!DOCTYPE html> <html> <head> <title>Chatter test</title> <meta charset="UTF-8"> <meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8"/> <!--  chatter.js --> <script src="js/vmchatter.js"></script> <script src="http://code.jquery.com/jquery.js"></script> <script> //      .   -  function Example1Chatter(host, port, params) { //  chatter',   , ,   "" this.chatter = new VMChatter(host, port, 'example1', params, this); } // ,   hello Example1Chatter.prototype.hello = function(text2, text1, text3, callback) { //  ,     , ,       this.chatter.applyMethod('hello', 'world', arguments); }; </script> <script type="text/javascript"> var sx; $(document).ready(function() { //,  sx = new Example1Chatter('localhost', 8888, { 'onOpen': function(){ console.log('Connected'); }, 'onClose': function(){ console.log('Disconnected'); } }); }); function sendHello() { sx.hello('text2', 'text1', 'text3', function(data, success) { $('#results').append('<p>' + data.text + '</p>'); }); } </script> </head> <body> <button class="btn" onclick="sendHello();">Send hello</button> <div id="results"></div </body> 


рдШрдЯрдирд╛рдУрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╣рд╕реНрддрд╛рдХреНрд╖рд░рдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдореЗрд▓рд┐рдВрдЧ, рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рднреЗрдЬрдирд╛)ред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдлрд┐рд▓рд╣рд╛рд▓ рдХреЛрдИ рджрд╕реНрддрд╛рд╡реЗрдЬ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╣реВрдВред рдЗрд╕ рдврд╛рдВрдЪреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрд╕ рдХрдВрдкрдиреА рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдореИрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВред рддреЛ рдпрд╣ рд▓реЛрдб рдХреЗ рд▓рд┐рдП "рдЬрд╛рдБрдЪ" рд╣реИ, рдХреБрдЫ рдХреАрдбрд╝реЗ рдкрдХрдбрд╝реЗ рдЧрдП рдФрд░ рддрдп рдХрд┐рдП рдЧрдПред

рдРрд╕реА рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ рдЬреЛ рдпрд╣рд╛рдВ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИрдВ рдФрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ, рдХрдИ рдФрд░ "рдЙрдкрд╣рд╛рд░" рддреИрдпрд╛рд░ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред

рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдг рдФрд░ рдЬреАрдердм рдкрд░ рд╕реНрд░реЛрдд рдХреЛрдбред

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


All Articles