我是桌面程序员,但我想学习一些有关Web服务的知识。我决定使用python。我正在尝试了解Web应用程序的工作原理。我知道如何创建基本龙卷风网站(请求 - 响应)和工作jabber客户端,但我不知道如何混合它们。我可以在Web服务中使用任何python组件吗?它们是否必须具有特定结构(同步或异步)?因为我陷入了循环处理程序:
如果龙卷风通过命令启动web serwer:
app = Application()
app.listen(options.port)
tornado.ioloop.IOLoop.instance().start()
...那么我在哪里(哪里)可以启动xmpp循环?
client.connect()
client.run()
我认为龙卷风听循环应该处理xmpp听力,但不知道如何
问候。
编辑:我忘记了。我正在使用pyxmpp2
答案 0 :(得分:0)
我相信你想要实现的目标在python的一个线程中是不可行的,因为两者都试图在同一时间监听,这在一个线程中是不可能的。我可能会建议查看有关线程的this教程。
另一个问题是你想要制作一个基于网络的xmpp,或者只是拥有一个xmpp& html服务器在同一个脚本中运行。如果你想尝试前者,我会建议你研究zeromq或queue
之间的线程间沟通。答案 1 :(得分:0)
也许WebSocketHandler和Thread会帮助你。
演示
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()