2

私はデスクトッププログラマーですが、Webサービスについて何かを学びたいと思っています。私はPythonを選びました。Webアプリケーションがどのように機能するかを理解しようとしています。基本的な竜巻のWebサイト(要求-応答)と動作するジャバークライアントを作成する方法は知っていますが、それらを組み合わせる方法がわかりません。WebサービスでPythonコンポーネントを使用できますか?それらは特定の構造(syncまたはasync)を持っている必要がありますか?私はループハンドラーで立ち往生しているので:

竜巻がコマンドでWebサーバーを起動する場合:

app = Application()
app.listen(options.port)
tornado.ioloop.IOLoop.instance().start()

...では、どのように(どこで)xmppループを開始できますか?

client.connect()
client.run()

トルネードリスンループはxmppリスニングを処理する必要があると思いますが、方法がわかりません

よろしく。

編集:忘れました。pyxmpp2を使用しています

4

2 に答える 2

0

両方が同時にリッスンしようとしているため、Pythonの1つのスレッドでは実行できないと思いますが、これは1つのスレッドでは不可能です。スレッド化に関するこのチュートリアルを参照することをお勧めします。

もう1つの質問は、Webベースのxmppを作成しようとしているのか、同じスクリプトでxmpp&htmlサーバーを実行しているだけなのかということです。前者を試してみたい場合は、zeromqまたはキューを使用したスレッド間通信を調べることをお勧めします

于 2012-06-16T21:31:20.220 に答える
0

多分WebSocketHandlerとスレッドがあなたを助けるでしょう。

デモ

クラスBotThread(threading.Thread):

    def __init __(self、my_jid、settings、on_message):
        super(BotThread、self).__ init __()
        #EchoBotはpyxmpp2のクライアントです
        self.bot = EchoBot(my_jid、settings、on_message = on_message)

    def run(self):
        self.bot.run()


クラスChatSocketHandler(tornado.websocket.WebSocketHandler):
    def open(self):
        #initxmppクライアント
        my_jid =
        設定=
        bot = BotThread(my_jid、settings、on_message = self.on_message)
        bot.start()

于 2013-08-22T07:14:41.127 に答える