ChatterはPython 2.7に基づいており、 tornadoを使用します。
Python(バックエンド)およびjs(フロントエンド)用の既製のAPIがあります
githubのサンプルとソースコード。
なぜ実際に作成されたのですか?
迅速かつ簡単な開発のため。 jsonのラッパーである独自の「プロトコル」があります。
「アプリ」ファイルの構造:
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()
コマンドは、 apiフォルダーのアプリファイルの横に保存されます。 フォルダー構造:
- api /
- example1 / 名前空間プロジェクト
- グループ/ メソッドグループ
- method1.py メソッド1
- method2.py メソッド2
- method1.py メソッド1
- グループ/ メソッドグループ
- example2 / プロジェクト#2
- グループ/ メソッドグループ
- method1.py メソッド1
- method2.py メソッド2
- method1.py メソッド1
- グループ/ メソッドグループ
- example1 / 名前空間プロジェクト
これ以上は必要ありません-サービスが開始されると、apiフォルダーは自動的に「メソッド」について分析され、メソッドのツリーのような構造が構築されます。
メソッドの動的更新がサポートされています(git-chatの例)。
メソッドファイル(/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>
イベントへのサブスクリプションもサポートされています(署名者への大量メール送信、特定のクライアントへの送信)。
残念ながら、現時点ではドキュメントはありませんが、現在作成中です。 このフレームワークは、私が働いている会社で使用されています。 そのため、負荷が「チェック」され、いくつかのバグが検出されて修正されました。
ここには示されていない非常に多くの機能があり、例では、さらにいくつかの「グッズ」が準備されています。
githubのその他の例とソースコード。