Happier通信协议详解:WebSocket与Socket.IO如何驱动实时同步
【免费下载链接】happierWeb, Desktop Mobile client and orchestrator for Codex, Claude Code, OpenCode, Pi, Cursor, Grok, Antigravity, Kimi, Augment Code, Qwen, fully end-to-end encrypted项目地址https://gitcode.com/gh_mirrors/hap/happier点击查看免费下载Happier 是一个面向 Codex、Claude Code、OpenCode、Pi 等多款 AI 编程助手的Web / 桌面 / 移动端客户端与编排器其多端实时同步能力完全建立在WebSocket 与 Socket.IO 通信协议之上。本文将从传输层、握手鉴权、事件模型到客户端重连带你 5 分钟看懂这套端到端加密的实时同步协议是如何运转的 一、为什么是 HTTP Socket.IO 双通道Happier 的协议设计刻意保持极简设计动机详见 docs/protocol.md通道用途特点HTTPJSON读取数据、执行操作走/v1、/v2路由简单可靠Socket.IO实时同步推送挂载在/v1/updates路径支持websocket与polling双传输这样组合的好处很直接WebSocket 负责推新消息、会话状态、设备上线等事件毫秒级到达Polling 作为兜底当网络环境不支持 WebSocket 时自动降级为 HTTP 长轮询保证弱网也能同步读写分离客户端断线重连后先用 HTTP 补齐历史数据再由 WebSocket 接续增量更新天然抗网络抖动。服务端在 apps/server/sources/app/api/socket.ts 中创建 Socket.IO 实例关键配置包括pingInterval: 1500015 秒心跳与pingTimeout: 45000用于及时发现并清理假死连接。二、握手鉴权三种连接作用域客户端连接时会在 Socket.IO 握手的auth字段中携带token与clientType服务端据此决定这条连接能收到什么连接类型场景收到的事件user-scopedWeb / 桌面 / 手机 App整个账号的全局更新session-scoped单个会话的发布端仅该会话的更新machine-scoped后台守护进程Daemon机器级更新并发布机器状态几个值得注意的细节无 Cookie 鉴权认证完全依赖握手中的 tokenCORS 设置credentials: false适合浏览器跨域场景见 apps/ui/sources/sync/api/session/connection/createSyncSocketTransport.ts机器独占机制同一台机器只允许一个 Daemon 连接第二个连接会被409 machine-owner-conflict拒绝避免双 Daemon状态混乱端到端加密不变形协议层把大部分载荷当作不透明的加密字符串处理服务端永远看不到明文加密边界见 docs/encryption.md。三、事件模型update与ephemeral的持久/瞬时分界这是整套协议最精妙的设计——按断线后是否需要恢复把事件分成两类1.update持久化同步事件携带全局递增的seq序列号客户端只需按序应用即可保证状态一致。核心事件包括new-session/update-session/delete-session—— 会话生命周期new-message—— 新消息加密内容new-machine/update-machine—— 设备状态new-artifact/update-artifact—— 工作区产物kv-batch-update—— 键值对批量同步2.ephemeral瞬态事件只关心此刻不落库、不参与重放activity/machine-activity—— 会话或设备是否正在思考usage—— token 用量与费用machine-status—— 设备在线状态手机 App 上的在线/离线小圆点就靠它 3. 乐观并发控制所有带版本的字段元数据、Agent 状态、产物内容等都要求客户端携带expectedVersion。若与服务端不一致服务端返回version-mismatch并附上最新值由客户端自行决策——冲突处理完全掌握在用户数据一侧而非服务端静默覆盖。事件路由的核心实现位于 apps/server/sources/app/events/connectionEventRouter.ts客户端→服务端的事件清单message、session-alive、rpc-call等完整列表见 docs/protocol.md。四、客户端侧连接监督与自动重连客户端并没有裸连WebSocket而是把 Socket.IO 连接包装成一个受监督的传输层connection-supervisor 负责生命周期统一处理 connect / disconnect / error并内置指数退避重连策略packages/connection-supervisor/src/reconnectBackoff.ts显式管理连接池UI 端创建 socket 时关闭 Socket.IO 全局缓存forceNew: true、multiplex: false避免旧监听器跨重建泄漏重连后自动补差重连成功 → HTTP 拉取缺失的seq区间 → WebSocket 继续接收增量整个过程对用户透明。五、多实例扩展Redis 适配器单机部署时事件通过进程内内存路由广播当服务横向扩展为多副本后Happier 通过socket.io/redis-streams-adapter把房间room状态同步到 Redis Streams任意副本上的 worker 都能把事件扇出到 API 副本持有的连接启动逻辑见 apps/server/sources/startServer.ts。这也是手机收到推送时电脑可能连着另一台服务器仍能工作的底层原因。六、延伸阅读 想深入源码或协议的读者可以从这些入口继续探索协议总览docs/protocol.mdHTTP API 全貌与鉴权流程docs/api.md端到端加密边界docs/encryption.md兼容性与版本演进策略docs/compatibility.md服务端 Socket.IO 配置apps/server/sources/app/api/socket.ts客户端同步传输层apps/ui/sources/sync/api/session/connection/createSyncSocketTransport.ts一句话总结Happier 用 HTTP 拉 Socket.IO 推、持久 update 瞬态 ephemeral、seq 排序 版本防冲突 三板斧在端到端加密的前提下让 Web、桌面、手机三端对同一批 AI 会话的视图始终保持一致——这就是它实时同步协议的全部骨架。赞分享【免费下载链接】happierWeb, Desktop Mobile client and orchestrator for Codex, Claude Code, OpenCode, Pi, Cursor, Grok, Antigravity, Kimi, Augment Code, Qwen, fully end-to-end encrypted项目地址https://gitcode.com/gh_mirrors/hap/happier点击查看免费下载相关推荐G-Helper终极指南如何用免费开源工具彻底解决华硕笔记本性能管理难题G Helper终极指南如何用免费开源工具彻底解决华硕笔记本性能管理难题 你是否厌倦了华硕Armoury Crate的臃肿卡顿是否想要一个轻量级却能全面控制桌面应用系统编程微信聊天数据永久保存指南如何让珍贵对话不再消失微信聊天数据永久保存指南如何让珍贵对话不再消失 你是否曾因为手机丢失、系统升级或误操作而丢失重要的微信聊天记录那些与家人的温馨对话、与朋友的珍贵回忆、与同事如何利用Super Productivity实现实时数据同步WebSocket技术解析与应用指南如何利用Super Productivity实现实时数据同步WebSocket技术解析与应用指南 Super Productivity是一款集成了时间盒管理和前端桌面应用移动开发创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

给任意一首歌做逐词卡拉OK高亮,误差控制在 5ms 级

给任意一首歌做逐词卡拉OK高亮,误差控制在 5ms 级

给任意一首歌做逐词卡拉OK高亮,误差控制在 5ms 级 【免费下载链接】pdoom-video Code-rendered music video for "Im Upping My P(doom)" 项目地址: https://gitcode.com/gh_mirrors/pd/pdoom-video 卡拉OK逐词高亮看起来简单——词到了就亮、唱完…

2026/10/10 22:55:33 阅读更多 →
让 Claude Code 帮你读论文:OpenResearch 科研工作流极速入门

让 Claude Code 帮你读论文:OpenResearch 科研工作流极速入门

让 Claude Code 帮你读论文:OpenResearch 科研工作流极速入门 【免费下载链接】OpenResearch Turn your coding agents into research agents 项目地址: https://gitcode.com/GitHub_Trending/op/OpenResearch 当 AI 编程助手逐渐成为日常开发标配时&#xf…

2026/10/10 22:55:33 阅读更多 →
同需求横评:Ming-Image、FLUX.2、Ideogram 4.0 谁的字最不糊、排版最稳

同需求横评:Ming-Image、FLUX.2、Ideogram 4.0 谁的字最不糊、排版最稳

同需求横评:Ming-Image、FLUX.2、Ideogram 4.0 谁的字最不糊、排版最稳 【免费下载链接】Ming-Image-0.1-Design 项目地址: https://ai.gitcode.com/hf_mirrors/inclusionAI/Ming-Image-0.1-Design 文字渲染是文生图模型的"照妖镜":风…

2026/10/10 22:54:33 阅读更多 →

最新新闻

灯泡开关问题的数学优化:从暴力循环到O(1)常数级解法

灯泡开关问题的数学优化:从暴力循环到O(1)常数级解法

题目叫“高性能计算笔记:灯泡开关问题的数学优化与常数级解法”,先别被“高性能计算”四个字唬住。这个经典题本身很简单,就是在100盏灯、100轮开关的设定里,第i轮翻转所有编号为i的倍数的灯泡,问最后哪些灯亮着。可它…

2026/10/11 0:12:35 阅读更多 →
一个管空中现实,一个造仿真练兵场:无人集群协同分野技术方案

一个管空中现实,一个造仿真练兵场:无人集群协同分野技术方案

一、方案概述(一)项目背景随着低空经济快速落地、无人装备规模化应用、低空安防场景常态化运行,多类型无人机、无人飞行器、无人集群编组作业已成为空域巡查、安防警戒、侦察巡检、空域管控的核心作业模式。无人集群作业呈现编组多元化、航线…

2026/10/11 0:12:35 阅读更多 →
低空要管得住,先要量得准:单兵与吊舱视频三维轨迹重建技术方案

低空要管得住,先要量得准:单兵与吊舱视频三维轨迹重建技术方案

一、方案概述(一)项目背景低空安全管控已成为城市安防、园区警戒、边境巡逻、赛事安保、工业现场防护等领域的重要防控方向。随着低空目标数量增多、飞行方式更趋灵活、隐蔽突防能力增强,传统依赖二维视频画面、人工盯屏、经验判断的低空管控…

2026/10/11 0:12:35 阅读更多 →
三维模型一次建好不管用,能自更新才管用:设备变更增量重建技术方案

三维模型一次建好不管用,能自更新才管用:设备变更增量重建技术方案

一、方案概述(一)项目背景当前工业数字孪生、智慧厂区运维、设备全生命周期管理、三维可视化管控领域,行业普遍存在重一次性建模、轻动态迭代更新的结构性短板。市面上绝大多数三维平台均采用竣工一次性建模、静态模型导入、人工贴图复刻、周…

2026/10/11 0:12:35 阅读更多 →
模型预测控制提升风电一次调频能力:原理与Matlab仿真实践

模型预测控制提升风电一次调频能力:原理与Matlab仿真实践

风电装机并网越多,系统频率反而越容易“飘”——这个现象在前些年刚做新能源并网仿真时,我一度觉得很矛盾:风不是清洁又便宜吗,怎么还会给电网添乱?后来才意识到,问题不在风本身,而在风机的“接…

2026/10/11 0:12:35 阅读更多 →
课堂行为数据集VOC/YOLO双格式详解与YOLO训练避坑指南

课堂行为数据集VOC/YOLO双格式详解与YOLO训练避坑指南

简介:这是一份面向课堂行为识别的标注数据集,包含671张课堂实景图片,提供Pascal VOC与YOLO两种主流格式的标注文件,可直接用于目标检测模型训练,也可服务于教学分析、行为统计等应用。资源包共2000个文件,包…

2026/10/11 0:11:34 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →