2014-10-03 101 views
0

有没有办法在socketio提交时停止执行并再次等待输入?socketio停止并等待python中的下一个动作

例如,通过以下代码,在提交时,方法self.check_input()验证信息。如果这是显示无效数据,我想停止执行链,并保持打开套接字等待下一个'on_submit'。目前它只是与例外一起继续滚动,因为数据是无效的...

这是如何实现的?

from socketio.namespace import BaseNamespace 

app = Flask(__name__) 
app.debug = True 
app.config.from_object(settings) 

@app.route('/socket.io/<path:remaining>') 
def iocg(remaining): 
    socketio_manage(request.environ, {'/testclass': TestClass}, request) 
    return 'done' 


class TestClass(BaseNamespace): 
    def on_submit(self, data): 
     self.data = data 
     self.check_input() 
     self.r_server = Redis('localhost') 
     self.cgc = coregrapherconf 
     self.scg = supportcoregrapher 
     self.run_stuff() 

回答

1

插座保持打开,直到您从客户端关闭它。您必须发回一些状态信息,以便浏览器知道发生了什么问题:

class TestClass(BaseNamespace): 
    def on_submit(self, data): 
     self.data = data 
     if not self.check_input(): 
      return "invalid data" 
     self.r_server = Redis('localhost') 
     self.cgc = coregrapherconf 
     self.scg = supportcoregrapher 
     self.run_stuff() 
     return "everything's ok"