Python socketio中的Tail子流程在烧瓶中的应用

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

我正在使用以下示例使用flask中的socketio库:

我想通过
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()
函数,如示例所示


它似乎不起作用,这让我很困惑。

我想你是在给标准库打补丁吧?