sockets - 是否为RequestHandler.write提供了 Tornado 回调?

标签 sockets asynchronous tornado

当客户端确认了写操作时,在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/

相关文章:

asynchronous - 异步是否需要涉及多线程或并行?

python - Tornado 创建一个过期时间小于 1 天的安全 Cookie

Python Tornado - 使 POST 立即返回,同时异步函数继续工作

java - 通过 DataOutputStream.writeUTF() 发送信息时出现奇怪的字符

c++ - 什么是 RDS 或可靠数据报套接字

python - 使用 python 后端的客户端授权

python - 使用 gevent 下载多个文件

java - Servlet 3 的异步 Servlet 功能 -- 我如何处理耗时的任务

Python Tornado 主管设置

c - 那么这2种socket处理方式有什么区别呢?