python - flask-socketio 启动服务方式
大家讲道理
大家讲道理 2017-04-18 10:23:13
0
2
818

使用 flask-socketio 在网页中嵌入了一个聊天室,启动服务使用的是:
socketio.run(app)
但是之前在没有写这个聊天室的时候,使用了flask-manager,开启服务是:
manager.run() 可以方便调试,同步数据库。
但是现在使用了socketio 就只能用socketio.run(app)启动了吗?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

membalas semua(2)
洪涛

Anda bukan sahaja perlu menjalankan app.run(), anda boleh terus menggunakan manager.run() untuk menguji sama ada flask-socketio boleh digunakan. Tetapi saya tidak pernah menemui cara mengintegrasikan flask-socketio ke dalam nginx. .

PHPzhong

Anda boleh membebankan fungsi run() dalam manage.py:

class Server(_Server):
    help = description = 'Runs the Socket.IO web server'

    def get_options(self):
        options = (
            Option('-h', '--host',
                   dest='host',
                   default=self.host),

            Option('-p', '--port',
                   dest='port',
                   type=int,
                   default=self.port),

            Option('-d', '--debug',
                   action='store_true',
                   dest='use_debugger',
                   help=('enable the Werkzeug debugger (DO NOT use in '
                         'production code)'),
                   default=self.use_debugger),
            Option('-D', '--no-debug',
                   action='store_false',
                   dest='use_debugger',
                   help='disable the Werkzeug debugger',
                   default=self.use_debugger),

            Option('-r', '--reload',
                   action='store_true',
                   dest='use_reloader',
                   help=('monitor Python files for changes (not 100%% safe '
                         'for production use)'),
                   default=self.use_reloader),
            Option('-R', '--no-reload',
                   action='store_false',
                   dest='use_reloader',
                   help='do not monitor Python files for changes',
                   default=self.use_reloader),
        )
        return options

    def __call__(self, app, host, port, use_debugger, use_reloader):
        # override the default runserver command to start a Socket.IO server
        if use_debugger is None:
            use_debugger = app.debug
            if use_debugger is None:
                use_debugger = True
        if use_reloader is None:
            use_reloader = app.debug
        socketio.run(app,
                     host=host,
                     port=port,
                     debug=use_debugger,
                     use_reloader=use_reloader,
                     **self.server_options)

manager.add_command("runserver", Server())

Kaedah permulaan: python manage.py runserver --host 0.0.0.0 --port 8000 -d -r
Kaedah di atas hanya digunakan semasa penyahpepijatan Gunicorn/uwsgi + nginx harus digunakan semasa pergi ke dalam talian.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan