python使用Flask的WebSocket扩展实现,服务端接收到“hello world"时,访问接口http://192.168.1.226:5000/restruct,并将运行信息实时发送给前端
时间: 2024-05-06 12:16:16 浏览: 123
python实现通过flask和前端进行数据收发
5星 · 资源好评率100%
首先需要安装 Flask-SocketIO 扩展,可以使用以下命令进行安装:
```
pip install flask-socketio
```
接下来,在 Flask 应用中导入 SocketIO 扩展,并创建 SocketIO 对象:
```
from flask import Flask, render_template
from flask_socketio import SocketIO
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app)
```
接着,定义一个事件处理函数,用于接收 WebSocket 消息并发送运行信息给前端:
```
@socketio.on('message')
def handle_message(message):
if message == 'hello world':
# 发送运行信息给前端
socketio.emit('run_info', {'data': '运行中...'})
```
最后,在 Flask 应用中定义一个路由,用于渲染前端页面:
```
@app.route('/restruct')
def index():
return render_template('index.html')
```
在前端页面中,需要使用 JavaScript 客户端库连接到 WebSocket 服务器,并监听运行信息事件:
```
<script src="//code.jquery.com/jquery-1.11.1.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/socket.io/2.2.0/socket.io.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var socket = io.connect('http://' + document.domain + ':' + location.port);
socket.on('run_info', function(msg) {
// 处理接收到的运行信息
console.log(msg.data);
});
});
</script>
```
以上就是通过 Flask-SocketIO 扩展实现 WebSocket 的基本流程。
阅读全文