Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.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
Http 自动重新建立长轮询请求的最佳方法是什么?_Http_Web_Tornado_Long Polling - Fatal编程技术网

Http 自动重新建立长轮询请求的最佳方法是什么?

Http 自动重新建立长轮询请求的最佳方法是什么?,http,web,tornado,long-polling,Http,Web,Tornado,Long Polling,我正在使用长轮询处理一个项目,因为在连接建立1分钟左右后,nginx服务器将响应504网关超时,所以我在$.ajax中编写了错误处理函数,以便它在收到504错误时能够自动重新连接到服务器。但是,尽管我已经这样做了,我不知道这是否是长轮询机制的最佳实践,这将在日志中产生大量504。这似乎不够好,那么我应该怎么做呢?您应该在长轮询响应中缩短超时时间。通常情况下,30秒或更短的时间就能成功。如果在30秒内您的服务器没有要发送的数据,它必须发送一个空响应。然后,客户端将发出一个新请求(立即或在暂停后,取

我正在使用长轮询处理一个项目,因为在连接建立1分钟左右后,nginx服务器将响应504网关超时,所以我在$.ajax中编写了错误处理函数,以便它在收到504错误时能够自动重新连接到服务器。但是,尽管我已经这样做了,我不知道这是否是长轮询机制的最佳实践,这将在日志中产生大量504。这似乎不够好,那么我应该怎么做呢?

您应该在长轮询响应中缩短超时时间。通常情况下,30秒或更短的时间就能成功。如果在30秒内您的服务器没有要发送的数据,它必须发送一个空响应。然后,客户端将发出一个新请求(立即或在暂停后,取决于您希望减少延迟的程度;例如,在Lightstreamer中,默认情况下,我们在长轮询周期之间不使用任何暂停)。

回答得很好,非常感谢!更详细地说,我如何在Tornado上实现它,我在Tornado的文档中没有看到任何关于请求时间计数和处理的内容。