python - flask-socketio 启动服务方式
问题描述
使用 flask-socketio 在网页中嵌入了一个聊天室,启动服务使用的是:socketio.run(app)但是之前在没有写这个聊天室的时候,使用了flask-manager,开启服务是:manager.run() 可以方便调试,同步数据库。但是现在使用了socketio 就只能用socketio.run(app)启动了吗?
问题解答
回答1:不用只需要运行app.run()你可以直接使用manager.run()测试一下flask-socketio大概可以使用。但是我一直都没有找到flask-socketio如何整合到nginx。。
回答2:你可以重载manage.py 中的run()函数:
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 serverif use_debugger is None: use_debugger = app.debug if use_debugger is None:use_debugger = Trueif use_reloader is None: use_reloader = app.debugsocketio.run(app, host=host, port=port, debug=use_debugger, use_reloader=use_reloader, **self.server_options)manager.add_command('runserver', Server())
启动方式: python manage.py runserver --host 0.0.0.0 --port 8000 -d -r上述方式只在调试时使用,上线还是Gunicorn/uwsgi + nginx 吧。
相关文章:
1. javascript - 如何将一个div始终固定在某个位置;无论屏幕和分辨率怎么变化;div位置始终不变2. html - vue项目中用到了elementUI问题3. javascript - 原生canvas中如何获取到触摸事件的canvas内坐标?4. javascript - vscode alt+shift+f 格式化js代码,通不过eslint的代码风格检查怎么办。。。5. javascript - 求解答:实例对象调用constructor,此时constructor内的this的指向?6. javascript - 有什么比较好的网页版shell前端组件?7. java - 如何写一个intellij-idea插件,实现编译时修改源代码的目的8. javascript - [js]为什么画布里不出现图片呢?在线等9. java 中Long 类型如何转换成Double?10. html5 - 有可以一次性把所有 css外部样式转为html标签内style=" "的方法吗?
