当客户端确认了写操作时,在Tornado中有没有办法接收回调?
我的应用程序正在使用web.asynchronous向Web客户端发送某些关键消息,如果发生网络问题,我的应用程序可能会调用finish()并使客户端实际上从未接收到任何数据。等待TCP ACK回来将是所有确认,我需要客户端实际接收到数据,然后再将数据标记为已接收。但是,我看不到在 Tornado 框架内执行此操作的方法。
我应该开始深入研究tornado.netutil和tornado.iostream的内部吗,还是我错过了什么?
我意识到我可以让客户端执行随后的HTTP请求,以确认它是否收到了消息,但是此时更改客户端相当困难,并且在某些情况下带宽对于客户端而言是昂贵的。
最佳答案
事实证明,flush()的回调确实做到了这一点。
因此,您可以执行以下操作
self.write(data)
self.flush(callback = do_something )
关于sockets - 是否为RequestHandler.write提供了 Tornado 回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10746687/