使用waitress如何同时开启flask和websocket
时间: 2024-03-23 20:39:59 浏览: 26
可以使用多线程或多进程的方式来同时开启flask和websocket。以下示例代码演示了如何使用多线程来同时开启flask和websocket:
```python
from flask import Flask
from flask_socketio import SocketIO
import threading
app = Flask(__name__)
socketio = SocketIO(app)
@app.route('/')
def index():
return 'Hello World!'
def start_websocket():
socketio.run(app)
if __name__ == '__main__':
websocket_thread = threading.Thread(target=start_websocket)
websocket_thread.start()
from waitress import serve
serve(app, host='0.0.0.0', port=5000)
```
在上述代码中,我们创建了一个名为`app`的flask应用,同时使用`SocketIO`扩展创建了一个websocket服务器。我们使用多线程的方式,在主线程中启动了flask应用,在另一个线程中启动了websocket服务器,并使用`waitress`作为http服务器来提供服务。注意,`waitress`默认是单线程的,因此我们需要使用多线程或多进程的方式来同时运行flask和websocket。