Socket
规划 API: 本页说明 socket 的最终用户用法。
commflow@0.0.2尚未导出 socket runtime;不要将本页 import 当作当前生产导入。当前可运行导出见 当前版本快速开始。
适用场景
socket 适合长连接双向实时通信:
创建 socket client
连接与关闭
连接生命周期必须显式。用户应该知道什么时候连接、什么时候关闭,以及关闭后是否还会重连。
发送消息
推荐消息结构:
发送顺序与背压:
监听事件
监听必须可释放,避免页面切换、服务关闭或重复订阅后产生资源泄漏。
心跳与重连
重新订阅:
重连后是否自动重新订阅必须由配置控制。默认不应重复发送会产生副作用的业务消息;只恢复订阅、presence 或只读状态同步这类可安全重放的动作。
鉴权与会话
socket 连接常需要 token 或 session:
鉴权过期时,应让用户能刷新 token 后重连,而不是无限重连失败。
资源释放
必须释放的资源:
- message listener。
- reconnect timer。
- heartbeat timer。
- pending request/response correlation。
- socket connection。
错误处理
更多错误模型见 错误与重试。