【问题标题】:Tornado callback for RequestHandler.write?RequestHandler.write 的龙卷风回调?
【发布时间】:2012-05-24 23:31:24
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: sockets asynchronous tornado


    【解决方案1】:

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

    所以你可以这样做

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

    【讨论】:

    • +1 表示好问题和好答案。我跟着你的 Tornado 东西 Jeff :))
    猜你喜欢
    • 2013-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多