美文网首页
iOS网络层架构介绍

iOS网络层架构介绍

作者: 王方帅 | 来源:发表于2019-09-26 18:13 被阅读0次

    1,使用哪种交互模式跟业务对接?
    block,delegate,notification,网络连通性需要用到通知
    2,采用离散型还是集约型API调用方式?
    AFN采用集约型调用,核心采用集约型做(加解密、URL拼接、API的起飞和着陆)、针对不同业务选择离散型调用方式实现(刷新列表、详情取消新发起请求、等待外面飞着的请求着陆,多维度筛选取消外面飞着的请求、执行新发起的请求)
    离散型API调用方式对于翻页机制能简单提供loadNextPage去加载下一页。
    3,交付什么样的数据给业务层?
    NSDictionary:
    模型:调试时查看数据内容不如NSDictionary只管,
    reformer:对于不同View需要不同模型时,需要在离散型API中进行各个模型转换,赋值给不同View。
    对于同一个View适配不同API数据时,需要在离散型API中对不同的dic转换成统一的模型。
    4,采用什么样的安全策略?
    加解密及签名、https
    5,采用什么样的网络请求缓存?
    API名称+参数拼成一个字符串然后去MD5作为key,存储对应返回数据。
    可用于商品详情、APP皮肤等时效性比较长的场景。根据超时时间进行清理,或对应每个商品详情一个token,有变更时清理。用户手动清理。
    下载的文件清理规则根据具体APP的操作日志来决定
    6,怎样减少日志上报的次数,降低耗电量、提升网络层性能?
    不需要每操作一次就发起一次请求,可以采用本地记录用户操作记录,当满30条时发起一次请求。APP启动时上传上次没上传的记录。
    7,针对DNS域名解析怎么做优化?
    直接用IP地址请求、每次启动时拉取IP列表,每个域名对应多个IP地址,存储到本地,启动时还需要用上一次缓存的IP列表取ping时间,取ping最小的IP作为今后发起请求的IP。
    8,传输数据量的优化?
    格式选择:JSON、protobuf
    去掉无用数据
    9,如果做链接复用?
    建立链接本身属于比较消耗资源的操作,耗电耗时。如果后端支持SPDY可以使用SPDY,否则可以使用PipLine,目前业界更倾向于HTTP/2.0代替SPDY

    相关文章

      网友评论

          本文标题:iOS网络层架构介绍

          本文链接:https://www.haomeiwen.com/subject/slzvyctx.html