2

私の古いコードでは、werkzeug run_simple を使用してアプリケーションを実行しています。ここで、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)

しかし、うまくいきませんでした。誰でも私を助けてください!

4

1 に答える 1

0

これは、こちらで説明されているように、Flask アプリwsgi_app属性をラップして置き換えることで実現できるようです

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)
于 2016-07-11T16:01:22.100 に答える