我是python龙卷风服务器的新手,我正在为我的下一个必须在实时环境中工作的项目评估python tornado.我使用Web Socket实现从github运行示例代码.
这是示例代码段.
app = web.Application([
(r'/', IndexHandler),
(r'/ws', SocketHandler),
(r'/api', ApiHandler),
(r'/(favicon.ico)', web.StaticFileHandler, {'path': '../'}),
(r'/(rest_api_example.png)', web.StaticFileHandler, {'path': './'}),
])
if __name__ == '__main__':
app.listen(8080)
ioloop.IOLoop.instance().start()
Run Code Online (Sandbox Code Playgroud)
代码按预期工作正常.
是否有可能提供类似云的解决方案,以便我可以动态地向Web应用程序添加新路由和处理程序,而无需重新启动服务器侦听端口.
例如; 服务器开始运行并为路由'/'提供index.html,它有n个查看器.如果新的要求附带路由'/ foo'将被提供给foo.html而不阻塞路由'/'的n个观看者.如果没有重新启动服务器,有什么可能的处理方法.
你需要tornado.web.Application的add_handlers方法; 像这样用它:
app.add_handlers(
r".*", # match any host
[
(
r"/foo/([^/]*)",
FooHandler
),
(
r"/bar/([^/]*)",
BarHandler
),
]
)
Run Code Online (Sandbox Code Playgroud)
从它的代码来看,它不会阻止任何事情.