Python socketio中的Tail子流程在烧瓶中的应用
我正在使用以下示例使用flask中的socketio库: 我想通过Python socketio中的Tail子流程在烧瓶中的应用,python,flask,socket.io,flask-socketio,Python,Flask,Socket.io,Flask Socketio,我正在使用以下示例使用flask中的socketio库: 我想通过subprocess()执行命令,并将其输出发送到后台线程中的socketio 我在这里以ping为例。以下似乎不起作用: def background_thread: command = ['ping', '-n', '3', '127.0.0.1'] process = Popen(comma
subprocess()
执行命令,并将其输出发送到后台线程中的socketio
我在这里以ping为例。以下似乎不起作用:
def background_thread:
command = ['ping', '-n', '3', '127.0.0.1']
process = Popen(command, shell=True, stdout=PIPE, stderr=PIPE,
close_fds=True, preexec_fn=os.setsid)
session['pid'] = process.pid
for out in iter(process.stdout.readline, b""):
out = '<pre>' + out + '</pre>'
count += 1
socketio.emit('my response', {'data': out, 'count':count}, namespace='/test')
time.sleep(0.001)
socketio.out = "Command finished." + '<br /><br />'
emit('exec_terminate', {'data': out})
def后台线程:
命令=['ping'、'-n'、'3'、'127.0.0.1']
process=Popen(命令,shell=True,stdout=PIPE,stderr=PIPE,
close_fds=True,preexec_fn=os.setsid)
会话['pid']=process.pid
对于输入输出iter(process.stdout.readline,b“”):
out=“”+out+“”
计数+=1
emit('my response',{'data':out,'count':count},命名空间='/test')
睡眠时间(0.001)
socketio.out=“命令已完成。”+”
emit('exec_terminate',{'data':out})
事实上,如果我尝试在while循环外使用socketio.emit()
函数,如示例所示
它似乎不起作用,这让我很困惑。我想你是在给标准库打补丁吧?