我是桌面程序员,但我想学习一些关于网络服务的知识。我决定使用 python。我正在尝试了解 Web 应用程序的工作原理。我知道如何创建基本的 Tornado 网站(请求 - 响应)和工作的 jabber 客户端,但我不知道如何混合使用它们。我可以在 Web 服务中使用任何 Python 组件吗?它们是否必须具有特定结构(同步或异步)?因为我陷入了循环处理程序:
如果tornado通过命令启动web服务器:
app = Application()
app.listen(options.port)
tornado.ioloop.IOLoop.instance().start()
...那么我如何(在哪里)开始 xmpp 循环?
client.connect()
client.run()
我认为 tornado 监听循环应该处理 xmpp 监听,但不知道如何
问候。
编辑:我忘了。我正在使用 pyxmpp2
请您参考如下方法:
我相信你试图完成的事情在 python 的一个线程中是不可行的,因为两者都试图同时监听,这在一个线程中是不可能的。我可以建议看看 this线程教程。
另一个问题是您是在尝试制作基于 Web 的 xmpp 还是只是让 xmpp 和 html 服务器在同一脚本中运行。如果您想尝试前者,我建议您使用 zeromq 研究线程间通信。或 queue
