Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 带Werkzeug的烧瓶socketio_Python_Flask_Flask Socketio - Fatal编程技术网

Python 带Werkzeug的烧瓶socketio

Python 带Werkzeug的烧瓶socketio,python,flask,flask-socketio,Python,Flask,Flask Socketio,我的旧代码,我使用werkzeug run_简单运行应用程序。现在,我需要使用socketio,如何将run_simple()更改为socketio.run() 我的旧代码: from werkzeug.serving import run_simple from werkzeug.wsgi import DispatcherMiddleware from admin import api, frontend application = DispatcherMiddleware(fronte

我的旧代码,我使用werkzeug run_简单运行应用程序。现在,我需要使用socketio,如何将run_simple()更改为socketio.run()

我的旧代码:

from werkzeug.serving import run_simple
from werkzeug.wsgi import DispatcherMiddleware

from admin import api, frontend

application = DispatcherMiddleware(frontend.create_app(), {
'/api': api.create_app()
})


if __name__ == '__main__':
    run_simple('0.0.0.0', 5000, application, use_reloader=True, use_debugger=False)
我试过:

from werkzeug.serving import run_simple
from werkzeug.wsgi import DispatcherMiddleware
from flask.ext.socketio import SocketIO
from admin import api, frontend

app = frontend.create_app()
application = DispatcherMiddleware(frontend.create_app(), {
    '/api': api.create_app()
})

socketio = SocketIO(app)

if __name__ == '__main__':
    # run_simple('0.0.0.0', 5000, application, use_reloader=True, use_debugger=False)
    socketio.run(app, host='0.0.0.0', port=5000, use_reloader=True, use_debugger=False)

但它不起作用。谁能帮帮我吗

这似乎可以通过包装和替换烧瓶应用程序
wsgi_app
属性来实现


您是否尝试将
应用程序
传递给
SocketIO
?Flask SocketIO严重依赖Flask。你用的是烧瓶,还是仅仅用Werkzeug?@dirn我试过了,但没用:(@Miguel:两个都用。@Phươnguyễn我在您的代码中看到的唯一明显的问题是,您使用
app
初始化socketio扩展,但是在dispatcher中间件中放置了一个不同的应用程序实例。这两个实例应该是同一个实例。除此之外,我真的不能说。如果您描述这对您不起作用的原因,并包括任何得到的错误或堆栈跟踪。
app = frontend.create_app()

app.wsgi_app = DispatcherMiddleware(app.wsgi_app, {
    '/api': api.create_app()
})

socketio = SocketIO(app)

if __name__ == "__main__":
    socketio.run(app, host='0.0.0.0', port=5000, use_reloader=True, use_debugger=False)