Table of Contents
18.10 Session 缓存、并发与重试
客户端应把 Session 管理封装为进程内/页面内单例:
- 有未过期 Session 时直接使用。
- 没有 Session 或收到
4605时,通过同一个进行中的 Promise/Task/Future 执行握手;并发请求等待同一结果,不并发发起多次握手。 -
4605后原请求最多重试一次,并设置仅本地可见的_encryptionRetried标志防止循环。 - 重试必须基于原始业务参数重新构造请求,生成新的
ts、nonce、request_id、IV 和密文,不能复用旧e或旧 body。 - 退出登录可清理本地 Session;设备标识、渠道、平台、构建号变化时必须丢弃旧 Session。
不要只根据 HTTP 状态码处理协议错误。当前业务异常通过标准 JSON 的 code/message/data 返回,客户端必须读取响应 JSON 的 code。