项目需求📠
后端能够持续不断地将特定数据传输给前端,这些数据可能包括当前任务进度、实时聊天信息、点赞或评论等互动通知。
今天主要的目标就是如何实现数据间的传输
技术栈🪁
我想到的办法就是通过websocket协议实现这一操作
后端:python-flask
前端:uniapp-vue-js
错误案例❌
首先我在网络上找到了这么一个方案,先上代码给大家看一下
不要复制,是错的
不要复制,是错的
不要复制,是错的
错误代码
后端部分
from flask import Flask
from flask_socketio import SocketIO, emit
import time
app = Flask(__name__)
app.config['SECRET_KEY'] = 'your_secret_key'
socketio = SocketIO(app, cors_allowed_origins="*")
@socketio.on('start_task')
def handle_start_task():
# 模拟一个长时间运行的任务
for i in range(1, 101):
time.sleep(0.1) # 假设每个步骤需要0.1秒
# 发送进度更新到客户端
emit('progress', {'progress': i}, broadcast=False)
if __name__ == '__main__':
socketio.run(app, debug=True, host='0.0.0.0', port=5000)
前端代码
export default {
data() {
return {
socket: null,
progress: 0
};
},
methods: {
connectSocket()