Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sockets RequestHandler.write的Tornado回调?_Sockets_Asynchronous_Tornado - Fatal编程技术网

Sockets RequestHandler.write的Tornado回调?

Sockets RequestHandler.write的Tornado回调?,sockets,asynchronous,tornado,Sockets,Asynchronous,Tornado,在Tornado中,有没有一种方法可以在客户端确认写操作后接收回调 我的应用程序正在使用web.asynchronous将某些关键消息传递给客户端,如果出现网络问题,我的应用程序可能会调用finish(),而客户端实际上从未收到任何数据。在我将数据标记为已接收之前,等待TCP ACK返回将是我需要的所有确认,即客户机实际收到了数据。然而,我认为在tornado框架内没有办法做到这一点 我应该开始挖掘tornado.netutil和tornado.iostream的内部来完成这项工作,还是我遗漏了

在Tornado中,有没有一种方法可以在客户端确认写操作后接收回调

我的应用程序正在使用web.asynchronous将某些关键消息传递给客户端,如果出现网络问题,我的应用程序可能会调用finish(),而客户端实际上从未收到任何数据。在我将数据标记为已接收之前,等待TCP ACK返回将是我需要的所有确认,即客户机实际收到了数据。然而,我认为在tornado框架内没有办法做到这一点

我应该开始挖掘tornado.netutil和tornado.iostream的内部来完成这项工作,还是我遗漏了什么


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

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

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

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

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

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

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

+谢谢你的好问题和好答案。我关注你的龙卷风题材杰夫:)+1问得好,回答得好。我跟着你的龙卷风(杰夫:))