RequestHandler.write的Tornado回调?

时间:2012-05-24 23:31:24

标签: sockets asynchronous tornado

在Tornado中有没有办法在客户端确认写入时收到回调?

我的应用程序使用web.asynchronous向客户端提供某些关键消息,并且在出现网络问题时,我的应用程序可能会调用finish()并让客户端实际上从未接收到任何数据。在我将数据标记为已接收之前,等待TCP ACK返回将是客户端实际接收数据所需的所有确认。但是,我认为在龙卷风框架内无法做到这一点。

我是否应该开始深入研究tornado.netutil和tornado.iostream的内部工作,或者我错过了什么?

我意识到我可以让客户端做一个后续的HTTP请求,确认它收到了消息,但此时更改客户端相当困难,在某些情况下,客户端的带宽是昂贵的。

1 个答案:

答案 0 :(得分:1)

事实证明,flush()的回调就是这样做的。

所以你可以做以下

self.write(data)
self.flush(callback = do_something )