原生用jsb.Downloader总是出现java.net.SocketException: Socket closed

cocos creator v2.3.4

let xhr = new XMLHttpRequest();

        Constants.logger.info("==========>XMLHttpRequest");

        xhr.open("GET", Constants.config.AndroidVersionUrl, true);

        xhr.timeout = 500000;

        xhr.onload = function () {

            Constants.logger.info("===========>xhr.readyState = " + xhr.readyState);

            if (xhr.readyState == 4 && (xhr.status >= 200 && xhr.status < 400)) {

                var response = xhr.responseText;

                versionModel = JSON.parse(response);

                Constants.logger.debug("============>checkAndroidHotLoad this is " + this.progressBar.progress);

                Constants.logger.debug("========>versionModel Version = " + versionModel.version);

                if(versionModel.version > Constants.config.appVersion.split('.')[0]){

                    let dirPath = jsb.fileUtils.getWritablePath() + "data/";

                    let filePath = dirPath + "13cardrummy-release-13card.apk";

                    let downloader = new jsb.Downloader();

                    Constants.logger.info("=======>filePath = "+filePath);

                    downloader.createDownloadFileTask(Constants.config.shareLink, filePath, "down_apk");

                    downloader.setOnTaskError(function (sender, errorCode, errorCodeInternal, errorStr){

                        Constants.logger.info("errorCode = " + errorCode);

                        Constants.logger.info("errorCodeInternal = " + errorCodeInternal);

                        Constants.logger.info("errorStr = " + errorStr);

                    });

                    let progressBar = this.progressBar;

                    let infoText = this.infoText;

                    downloader.setOnTaskProgress(function(sender, bytesReceived, totalBytesRecevied, tatalBytesExpected){

                        Constants.logger.info("已下载完成的大小 = " + bytesReceived);

                        Constants.logger.info("总大小 = " + totalBytesRecevied);

                        Constants.logger.info("预期的总大小 = " + tatalBytesExpected);

                        Constants.logger.info("========>progressBar = " + progressBar.progress);

                        infoText.string = "Downloading the latest installation package……";

                        progressBar.progress = totalBytesRecevied / tatalBytesExpected;

                    });

                    downloader.setOnFileTaskSuccess(function(sender){

                        Constants.logger.info("down success !!!!");

                        Constants.logger.info("file tatal size = " + jsb.fileUtils.getFileSize(filePath));

                        Constants.native.OpenInstallApk(filePath);

                    });

                }else{

                    Constants.logger.info("===================>restart1 checkHotLoad");

                    this.androidHotUpdating = false;

                    this.checkHotLoad();

                }

            }else{

                Constants.logger.info("===================>restart2 checkHotLoad");

                this.androidHotUpdating = false;

                this.checkHotLoad();

            }

        }.bind(this);

        xhr.send();

下载到固定进度就提示网络连接被关闭了,求大佬解惑

下面是部分日志:

2022-07-19 14:45:04.916 10073-10121/com.toprummy.development D/jswrapper: JS: [INFO]: [2022-07-19T06:45:04.916Z] Information: 已下载完成的大小 = 292
2022-07-19 14:45:04.916 10073-10121/com.toprummy.development D/jswrapper: JS: [INFO]: [2022-07-19T06:45:04.916Z] Information: 总大小 = 6425460
2022-07-19 14:45:04.916 10073-10121/com.toprummy.development D/jswrapper: JS: [INFO]: [2022-07-19T06:45:04.916Z] Information: 预期的总大小 = 23712941
2022-07-19 14:45:04.916 10073-10121/com.toprummy.development D/jswrapper: JS: [INFO]: [2022-07-19T06:45:04.916Z] Information: ========>progressBar = 0.27095618379854275
2022-07-19 14:45:04.918 10073-10121/com.toprummy.development D/HostConnection: glGetError exceeded.
2022-07-19 14:45:04.933 10073-10174/com.toprummy.development W/System.err: java.net.SocketException: Socket closed
2022-07-19 14:45:04.933 10073-10174/com.toprummy.development W/System.err:     at java.net.SocketInputStream.socketRead0(Native Method)
2022-07-19 14:45:04.933 10073-10174/com.toprummy.development W/System.err:     at java.net.SocketInputStream.read(SocketInputStream.java:151)
2022-07-19 14:45:04.933 10073-10174/com.toprummy.development W/System.err:     at java.net.SocketInputStream.read(SocketInputStream.java:120)
2022-07-19 14:45:04.933 10073-10174/com.toprummy.development W/System.err:     at org.cocos2dx.okio.Okio$2.read(Okio.java:140)
2022-07-19 14:45:04.933 10073-10174/com.toprummy.development W/System.err:     at org.cocos2dx.okio.AsyncTimeout$2.read(AsyncTimeout.java:237)
2022-07-19 14:45:04.934 10073-10174/com.toprummy.development W/System.err:     at org.cocos2dx.okio.RealBufferedSource.read(RealBufferedSource.java:47)
2022-07-19 14:45:04.934 10073-10174/com.toprummy.development W/System.err:     at org.cocos2dx.okhttp3.internal.http1.Http1Codec$AbstractSource.read(Http1Codec.java:363)
2022-07-19 14:45:04.934 10073-10174/com.toprummy.development W/System.err:     at org.cocos2dx.okhttp3.internal.http1.Http1Codec$FixedLengthSource.read(Http1Codec.java:407)
2022-07-19 14:45:04.934 10073-10174/com.toprummy.development W/System.err:     at org.cocos2dx.okio.RealBufferedSource$1.read(RealBufferedSource.java:439)
2022-07-19 14:45:04.934 10073-10174/com.toprummy.development W/System.err:     at java.io.InputStream.read(InputStream.java:101)
2022-07-19 14:45:04.934 10073-10174/com.toprummy.development W/System.err:     at org.cocos2dx.lib.Cocos2dxDownloader$3$1.onResponse(Cocos2dxDownloader.java:221)
2022-07-19 14:45:04.934 10073-10174/com.toprummy.development W/System.err:     at org.cocos2dx.okhttp3.RealCall$AsyncCall.execute(RealCall.java:203)
2022-07-19 14:45:04.934 10073-10174/com.toprummy.development W/System.err:     at org.cocos2dx.okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
2022-07-19 14:45:04.934 10073-10174/com.toprummy.development W/System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
2022-07-19 14:45:04.934 10073-10174/com.toprummy.development W/System.err:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
2022-07-19 14:45:04.934 10073-10174/com.toprummy.development W/System.err:     at java.lang.Thread.run(Thread.java:761)
2022-07-19 14:45:04.949 10073-10121/com.toprummy.development V/libnb: enter native_bridge2_getTrampoline Java_org_cocos2dx_lib_Cocos2dxDownloader_nativeOnFinish, trampoline_addr 0xbce94d24
2022-07-19 14:45:04.956 10073-10121/com.toprummy.development D/jswrapper: JS: [INFO]: [2022-07-19T06:45:04.956Z] Information: errorCode = -3
2022-07-19 14:45:04.956 10073-10121/com.toprummy.development D/jswrapper: JS: [INFO]: [2022-07-19T06:45:04.956Z] Information: errorCodeInternal = 0
2022-07-19 14:45:04.957 10073-10121/com.toprummy.development D/jswrapper: JS: [INFO]: [2022-07-19T06:45:04.956Z] Information: errorStr = java.net.SocketException: Socket closed

你确定是XMLHttpRequest超时吗 还是jsb.Downloader 这两个可不一样?

应该是jsb.downloader造成的这个问题

downloader很常见的现象,你自己做重连吧只能

重连没问题了

jsb downloader怎么做重连