超超哥AI云计算超哥讲AI 出品

社群入口

AI 超哥 Codex 副业群

扫码加入群聊,一起交流 AI、Codex 与副业实践。

原图注明二维码于10月20日前有效;若提示过期或无法入群,请等待更新二维码。

AI 超哥 Codex 副业群入群二维码在新窗口打开原图

消息协议、客户端确认与断线恢复

WebSocket、消息队列与实时通信#Python全栈#第十六阶段#WebSocket、消息队列与实时通信#消息协议、客户端确认与断线恢复约 764 字 · 2 分钟阅读
追问显示
点击任意追问卡片可收起 / 展开

实时业务消息应包含哪些公共字段?

追问 event_id、type、version、业务对象标识、序号和时间各解决什么问题?哪些身份与权限字段应由服务器补充而不是信任客户端?

发送聊天消息时,客户端临时标识与服务器消息标识怎样配合?

追问 网络超时后重发如何识别同一次提交?乐观显示的记录怎样替换为已保存记录,重复确认如何避免重复插入?

为什么 WebSocket send 调用成功不能直接把消息标记为“已读”?

追问 已接受、已保存、已送达和已读分别需要什么证据?如果设计应用层 ACK,它确认的是哪个状态,谁有权上报?

应用层消息确认应怎样设计重试与去重?

追问 确认本身丢失时会发生什么?确认标识、等待时间、重发上限和去重记录保留期如何协调?

怎样设计用户断线后的消息补齐接口?

追问 游标按用户还是房间保存,分页和权限怎样控制?怎样区分消息从未保存、已经保存但未推送,以及超过保留期?

拉取历史和订阅实时事件之间怎样避免漏消息或重复消息?

追问 先拉历史再订阅、先订阅再拉历史分别有什么窗口?怎样使用快照水位、缓冲和事件去重完成切换?

怎样定义和维护一个房间内的消息顺序?

追问 为什么仅依靠客户端时间或数据库自增 ID 的分配顺序不一定能代表提交顺序?多个生产者、事务回滚与并行处理如何影响序号方案?

前端收到乱序或重复状态事件时怎样更新界面?

追问 版本号、状态机和业务对象当前状态怎样配合?报告已完成后又收到旧的“处理中”事件,怎样防止界面回退?

已读游标、未读数量和多设备同步怎样设计?

追问 某设备推进游标后其他设备如何更新?消息删除、不可见记录和重复事件怎样影响未读统计,怎样与数据库结果对账?

消息协议升级时,怎样兼容仍然在线的旧客户端?

追问 新增字段、删除字段和新增事件类型分别怎样处理?怎样明确版本范围、记录未知事件,并避免一次发布使所有旧页面失效?
消息协议、客户端确认与断线恢复 · 超哥AI云计算