正在做一个android项目,资源比较大,打算用热更的方式下载。其中好几个数据文件有50+M,在测试时发现频繁超时。
查看cocos 源码看到:
AssetsManagerEx::init 中写死了DEFAULT_CONNECTION_TIMEOUT = 45; //秒
这个值传递给Cocos2dxDownloader中
if (timeoutInSeconds > 0) {
downloader._httpClient = new OkHttpClient().newBuilder()
.followRedirects(true)
.followSslRedirects(true)
.callTimeout(timeoutInSeconds, TimeUnit.SECONDS)
.build();
}
一个下载任务45秒必然超时?
然后再看断点续传:
if (downloadStart > 0) {
builder.addHeader("RANGE", "bytes=" + downloadStart + "-");
}
真的就只支持断点续传而已, 分段下载呢?完全不考虑?这样让大文件下载怎么玩啊?
我把DEFAULT_CONNECTION_TIMEOUT设置到300测试,也是有问题的:
1) 下载等待时间长,体验超级不好;
2) 当_countOfMaxProcessingTasks > 1时, 事实上也会很快超时;
是还有我每看到细节么???
希望cocos 团队把基础功能搞健壮点。