在龙卷风的web应用程序的Python XMPP Jabber客户端(Python xmpp jab

2019-09-18 04:10发布

我的桌面程序员,但我想了解一些关于Web服务。 我决定为蟒蛇。 我想了解Web应用程序是如何工作的。 我知道如何创建基本的龙卷风网站(请求 - 响应)和工作Jabber客户端,但我不知道如何将它们混合。 我可以使用Web服务的任何组件蟒蛇? 难道他们必须具有特定的结构(同步或异步)? 因为我被困在循环处理程序:

如果龙卷风通过命令来启动网络serwer:

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

......因此,如何(如果)我可以开始XMPP循环?

client.connect()
client.run()

我认为,龙卷风听环路应该处理XMPP听,但不知道如何

问候。

编辑:我忘了。 我使用pyxmpp2

Answer 1:

我相信,因为二者都是在尝试,这是不可能在一个线程在同一时间听你所要完成的是不是在蟒蛇的一个线程是可行的。 我可能会建议看本教程线程。

另一个问题是,你想做一个基于web的XMPP或只是在同一个脚本运行的XMPP和HTML服务器。 如果你想尝试前我劝你看看线程间通信或者与zeromq或队列



Answer 2:

也许WebSocketHandler和线程会帮助你。

演示

class BotThread(threading.Thread):

    def __init__(self,my_jid,settings,on_message):
        super(BotThread,self).__init__()
        #EchoBot is pyxmpp2's Client
        self.bot = EchoBot(my_jid, settings,on_message= on_message)

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


class ChatSocketHandler(tornado.websocket.WebSocketHandler):
    def open(self): 
        #init xmpp client
        my_jid = 
        settings = 
        bot =BotThread(my_jid, settings,on_message=self.on_message)
        bot.start()



文章来源: Python xmpp jabber client in tornado web application