flask创建websocket连接
时间: 2023-08-15 17:04:30 浏览: 51
要在 Flask 中创建 WebSocket 连接,您需要使用 Flask-SocketIO 扩展。下面是一个简单的示例:
```python
from flask import Flask, render_template
from flask_socketio import SocketIO, emit
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app)
@app.route('/')
def index():
return render_template('index.html')
@socketio.on('connect')
def test_connect():
print('Client connected')
@socketio.on('disconnect')
def test_disconnect():
print('Client disconnected')
if __name__ == '__main__':
socketio.run(app)
```
在上面的代码中,`@socketio.on('connect')` 装饰器用于指定当客户端连接到服务器时要执行的函数。同样的,`@socketio.on('disconnect')` 装饰器用于指定当客户端断开连接时要执行的函数。
在 `test_connect()` 函数中,您可以执行任何操作,例如向客户端发送消息或执行其他逻辑。
要使用 Flask-SocketIO,您需要在 HTML 页面中包含 Socket.IO 客户端库。以下是一个简单的 HTML 页面示例:
```html
<!DOCTYPE html>
<html>
<head>
<title>WebSocket Test</title>
<script src="//cdnjs.cloudflare.com/ajax/libs/socket.io/2.2.0/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost:5000');
socket.on('connect', function() {
console.log('Connected!');
});
socket.on('disconnect', function() {
console.log('Disconnected!');
});
</script>
</head>
<body>
<h1>WebSocket Test</h1>
</body>
</html>
```
在上面的 HTML 页面中,我们使用 `io.connect()` 函数连接到服务器,并使用 `socket.on('connect')` 和 `socket.on('disconnect')` 函数处理连接和断开连接事件。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)