- Wide 会话
- 生命周期
- 会话状态
- 实现
Wide 会话
Wide 不是一个 Web 网站,它对服务器端的状态管理有特殊的需求。
生命周期
在前面我们提到过 Wide 会话和浏览器 tab 的关系,这定义了 Wide 会话的生命周期和浏览器 tab 是一致的:
- 新建 tab 时(刷新也认为是新建),服务器端创建会话
- tab 处于打开时,服务器端维持会话
- 关闭 tab 时,服务器端销毁会话
会话状态
一个 Wide 会话包含如下信息:
- 关联的HTTP 会话
- 关联的事件队列
- 关联的运行进程集
- 当前会话状态:Active/Closed
- 创建时间
- 最近一次使用时间:收到事件、运行进程都会更新这个时间
销毁一个会话时,需要将其相关的资源回收,避免泄漏。
实现
服务器端使用 WebSocket 建立同 tab 的通讯通道,通道关闭时销毁服务器端会话。
原文: https://88250.gitbooks.io/wide-dev-guide/zh-cn/session_mgmt/wide.html