1

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

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

我应该开始深入研究 tornado.netutil 和 tornado.iostream 的内部结构来做到这一点,还是我错过了什么?

我意识到我可以让客户端执行后续的 HTTP 请求以确认它收到了消息,但是此时更改客户端相当困难,并且在某些情况下客户端的带宽成本很高。

4

1 回答 1

1

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

因此,您可以执行以下操作

self.write(data)
self.flush(callback = do_something )
于 2012-05-27T19:33:03.390 回答