Sockets RequestHandler.write的Tornado回调?
在Tornado中,有没有一种方法可以在客户端确认写操作后接收回调 我的应用程序正在使用web.asynchronous将某些关键消息传递给客户端,如果出现网络问题,我的应用程序可能会调用finish(),而客户端实际上从未收到任何数据。在我将数据标记为已接收之前,等待TCP ACK返回将是我需要的所有确认,即客户机实际收到了数据。然而,我认为在tornado框架内没有办法做到这一点 我应该开始挖掘tornado.netutil和tornado.iostream的内部来完成这项工作,还是我遗漏了什么Sockets RequestHandler.write的Tornado回调?,sockets,asynchronous,tornado,Sockets,Asynchronous,Tornado,在Tornado中,有没有一种方法可以在客户端确认写操作后接收回调 我的应用程序正在使用web.asynchronous将某些关键消息传递给客户端,如果出现网络问题,我的应用程序可能会调用finish(),而客户端实际上从未收到任何数据。在我将数据标记为已接收之前,等待TCP ACK返回将是我需要的所有确认,即客户机实际收到了数据。然而,我认为在tornado框架内没有办法做到这一点 我应该开始挖掘tornado.netutil和tornado.iostream的内部来完成这项工作,还是我遗漏了
我意识到我可以让客户端执行一个后续HTTP请求,确认它收到了消息,但此时更改客户端相当困难,而且在某些情况下,带宽对于客户端来说是昂贵的。事实证明,flush()的回调正是这样做的 因此,您可以执行以下操作
self.write(data)
self.flush(callback = do_something )
事实证明,flush()的回调函数正是这样做的 因此,您可以执行以下操作
self.write(data)
self.flush(callback = do_something )
+谢谢你的好问题和好答案。我关注你的龙卷风题材杰夫:)+1问得好,回答得好。我跟着你的龙卷风(杰夫:))