Vue项目请求时间过长导致断开连接的问题

时间:2024-04-07 15:59:29

       对于laravel,已经无力吐槽,不能支持多线程是个永远的痛,如果这个问题在java中,直接另辟一个线程就可以搞定,分分钟就可以返回数据!

    问题:上传视频至阿里云oss,大文件莫名的会上传两次,而且前端每次大约在4.1min的时候断开连接

    思路:因为在阿里云的控制台可以看到同一个视频被上传了两次,猜测是前端框架或者后端框架做了一次链接retry

   解决方案:

1.后端框架(laravel)验证:

public function testTimeOut(){

        sleep(400);
        return 'sleep await';  


}

Vue项目请求时间过长导致断开连接的问题

可以看出后台在400s之后可以返回数据,基本可以排除是后台laravel框架的问题

2.前端框架(Vue)验证 

Vue项目请求时间过长导致断开连接的问题

原先配置文件默认超时时长为2min(这里也是猜测)

然后开始上传视频,控制台发送upload请求,刷新阿里云控制台会看到文件正在上传,奇妙的事情发生了控制报错net err_empty_response,然后在刷新阿里云控制台会发现刚才上传的视频已经完成,但是还有同样的一个视频正在上传,所以猜测在前端没有得到response后,又尝试了请求了一次,导致视频会被上传两次!所以可以断定问题出在前端框架上。

经过一顿的测试和研究发现,

Vue项目请求时间过长导致断开连接的问题

这里设置timeout后可以有效的解决刚才的问题!

 

 

     ☆声明:原创文章,转载请标明出处! 

     写自己的代码,送给那些曾经瞧不起你的人!

                                           ----------------------lonelykeyboard

                                                                      2019.04.19