多会话(Multi-Session) 协议

别名: 多会话隔离

一个服务同时服务多个客户端,各自持有独立会话、互不串流。协议层用 sessionId 分派事件,服务端用 Map 存每会话历史、缓冲按会话分桶。见[第 15 章](/chapters/15-service-v02-events/)。

它是什么

多会话(Multi-Session)是一个服务同时服务多个客户端、各自持有独立会话、互不串流。协议层用 sessionId 分派事件(每个事件都盖 sessionId 的章),服务端用 Map<sessionId, Session> 存每会话历史,缓冲按 sessionId 分桶——三个层次各管一截,互不越位。

怎么保证不串流

「不串流」由三处共同保证:事件带 sessionId(事件到达哪条流、缓冲进哪个桶、前端渲染进哪个对话气泡,全靠这一个字段分派);会话状态隔离(每个 session 有独立的 messages 历史与 status);订阅按会话隔离GET /events?sessionId=x 只拿到自己桶里的回放与实时事件)。两个客户端同时在线,各自 6 条事件各落各的桶,GET /sessions 一眼看到全貌。

在本教程的位置

第 15 章让 mock 模型的第二个会话(问北京)走完全一样的流程,但事件全部落在自己的 sessionId 桶里——演示里 GET /sessions 返回两个会话各自的 { sessionId, eventCount, lastEvent }。核心概念是会话;多会话是它从「1 对 1」扩展到「1 对 N」的自然结果。

相关词条

出现在这些章节