烧瓶应用中的socketio中的尾部子过程

时间:2015-10-15 23:35:25

标签: python flask socket.io flask-socketio

我正在使用以下示例利用烧瓶中的socketio库:

  

https://github.com/miguelgrinberg/Flask-SocketIO/tree/master/example

我想通过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})  

事实上,如果我尝试在while循环中使用socketio.emit()函数,如示例所示。

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

0 个答案:

没有答案