为了账号安全,请及时绑定邮箱和手机立即绑定

在 flask 应用程序 socketIO 脚本期间服务器等待

在 flask 应用程序 socketIO 脚本期间服务器等待

森林海 2022-09-06 21:20:44
我正在尝试在 flask Web 套接字应用的服务器端脚本中创建时间延迟。最终,我希望服务器能够同时处理许多请求,并且能够以固定的时间间隔向客户端发出两个数据包。当我在两个语句之间使用时,客户端在睡眠完成后一起接收套接字发出事件。time.sleep(x)flask_socketio.emit如何在python烧瓶应用程序中实现?Emit X; wait Y seconds; emit Z服务器端代码摘录:from flask import Flask, requestfrom flask_socketio import SocketIO, join_room, emitapp = Flask(__name__)socketio = SocketIO(app)@socketio.on('ping')def ping(appState):    """send 2 pings, between a time interval"""    room = appState["sessionID"]    emit('serverPingResponse', {'room': room, 'msg':"Ping Received by Server"})    time.sleep(5)    emit('serverPingResponse', {'room': room, 'msg':"2nd time-delayed ping"})    return客户端代码摘录:var socket = io.connect('http://' + document.domain + ':' + location.port);socket.on("serverPingResponse", function(msg){      // listen to server ping and print the message to console      let d = new Date();      console.log("ping received at "+d.toLocaleTimeString(), msg)    });控制台输出pinging server...ping received at 10:43:14 AM Object { room: "wvdhj01f3p", msg: "Ping Received by Server" }ping received at 10:43:14 AM Object { room: "wvdhj01f3p", msg: "2nd time-delayed ping" }所需的输出是接收第一个 ping,第二个 ping 在10:43:0910:43:14
查看完整描述

1 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

您正在使用该函数,我猜它阻止了您的服务器。请尝试使用,这将执行与您正在使用的异步框架(eventlet,gevent)兼容的协作睡眠。time.sleep()socketio.sleep()



查看完整回答
反对 回复 2022-09-06
  • 1 回答
  • 0 关注
  • 212 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号