我需要一点帮助才能更清楚地理解事情。我有一个网络拦截器链,我将缓存作为要添加到链中的标头之一传递。我研究了缓存控制,想知道是否有任何选项可以优化应用程序端以避免 websocket 超时。不知道在整个链条中,接收回复所需的时间最长,我想指出它。
为了可见性,链目前看起来像这样
override fun intercept(chain: Interceptor.Chain): Response = chain.run {
proceed(
request()
.newBuilder()
.addHeader(app, version)
.addHeader(device, someDevice)
.addHeader(cache, CACHE_MAX_AGE})
.build()
)
}
有人可以解释一下使用缓存控制
.cacheControl()
是否比使用.addheader()
将缓存作为标头参数传递有任何优势。
对链条做了一些研究。
这就是我想尝试的,
通过分离链并查看它们完成所需的平均时间,为当前链中完成最长的操作/标头提供足够的时间
采取逐步的方法,一次传递一个,然后构建整个对象,在每个步骤中留出足够的时间到其各自的时间能够完成,因为每个人的情况不一致并且波动给定的网络环境/情况可以进行调整
或者,如果我知道这条链目前需要多长时间才能完成,就像在一堆不同的用例中一样,我可以估计我的所有链在网络上完成的总时间,然后给它完成的时间。
请让我知道想法,或者如果我还很遥远并且这一切都不可行/最佳,或者如果有人有任何其他想法。
通过拦截器链返回响应的时间确实可以忽略不计。
您的注意力最好集中在提高缓存命中率和减少传输的数据总量上。