龙卷风:应用程序或HTTPServer

时间:2018-03-27 00:58:30

标签: tornado

各种Tornado文档显示直接使用tornado.web.Application:

application = tornado.web.Application(endpoints, **settings)
application.listen(8888)
tornado.ioloop.IOLoop.current().start()

或通过HTTPServer:

application = tornado.web.Application(endpoints, **settings)
server = tornado.httpserver.HTTPServer(application)
server.listen(8888)
tornado.ioloop.IOLoop.current().start()

有什么区别?文档尚未清除。

2 个答案:

答案 0 :(得分:1)

Application.listen是构建HTTPServer并在其上调用listen的简写。这很方便,因为您可能需要导入Application课程,否则无需触及HTTPServer

您需要手动构建HTTPServer的唯一时间是您需要调用listen以外的其他方法(您甚至可以通过{HTTPServer构造函数参数传递Application.listen {1}},所以你可以通过这种方式获得HTTPS)。如果您正在使用多进程模式,或使用HTTPServer.add_sockets不常用的内容,则需要执行此操作。

答案 1 :(得分:0)

来自the docs

  

除了在流程开始时启动服务器之外,典型应用程序几乎没有与HTTPServer类直接交互(甚至通常通过tornado.web.Application.listen间接完成)。

基本上,HTTPServer是Tornado默认用于其应用程序的内置HTTP服务器实现。如果您需要更好地处理其他Web服务器,您还可以通过其他Web服务器(例如via WSGI)提供Tornado应用程序。