我正在尝试从websocket客户端向服务器(python/flask/socketio)发送常量消息。
我在一个简单页面上有一个提交按钮,可以启动长时间运行的作业。
在Python代码中,我这样启动长时间运行的作业:
我希望发生的是Python启动长时间运行的作业代码,然后返回执行间隔为setInterval的循环:
在客户端上的“loop”:
在服务器上:
在提交按钮被点击之前,“ping”函数会在屏幕上放置...,但它不会在长时间运行的作业代码执行时继续执行该函数。
我认为问题是在服务器端阻塞,但我不确定。长时间运行的作业仍然有发射到客户端,但 ping 发射在长时间运行的作业进行时停止了。
有人有想法如何解决这个问题吗?
谢谢!
我在一个简单页面上有一个提交按钮,可以启动长时间运行的作业。
$('form#emit').submit(function(event) {
socket.emit('submit', {...});
return false;
在Python代码中,我这样启动长时间运行的作业:
@socketio.on('submit', namespace='/namespace')
def long_running_function(message):
long_running_job_code(message)
我希望发生的是Python启动长时间运行的作业代码,然后返回执行间隔为setInterval的循环:
在客户端上的“loop”:
setInterval(function() { pinger() }, 1000);
function pinger()
{
socket.emit('ping','test');
}
在服务器上:
@socketio.on('ping', namespace='/namespace')
def ping(message):
emit('my response', {'data': '.'})
在提交按钮被点击之前,“ping”函数会在屏幕上放置...,但它不会在长时间运行的作业代码执行时继续执行该函数。
我认为问题是在服务器端阻塞,但我不确定。长时间运行的作业仍然有发射到客户端,但 ping 发射在长时间运行的作业进行时停止了。
有人有想法如何解决这个问题吗?
谢谢!