报错:Module 'flask_socketio' has no 'request' member
时间: 2023-12-16 07:06:27 浏览: 268
非常抱歉,我的回答仍然有误。在 Flask-SocketIO 中,处理 WebSocket 连接的函数不是 Flask 中的视图函数,因此也不能通过 Flask-SocketIO 的上下文对象 `flask_socketio` 来访问请求对象。
正确的做法是使用 Flask-SocketIO 提供的 `request` 对象。在 `handle_connect()` 函数中,可以通过 `request.environ.get('HTTP_SEC_WEBSOCKET_VERSION')` 来获取 WebSocket 协议版本信息。例如:
```python
from flask import Flask, render_template
from flask_socketio import SocketIO, emit, request
app = Flask(__name__)
socketio = SocketIO(app)
@socketio.on('connect')
def handle_connect():
print('WebSocket protocol version:', request.environ.get('HTTP_SEC_WEBSOCKET_VERSION'))
if __name__ == '__main__':
socketio.run(app, debug=True)
```
在上面的代码中,我们通过 Flask-SocketIO 的 `request` 对象来访问请求对象,然后使用 `environ.get('HTTP_SEC_WEBSOCKET_VERSION')` 方法来获取 WebSocket 协议版本信息。
阅读全文