技术视角:网页版如何建立并保持会话

面向开发者与技术支持人员,说明加密、连接、同步三个层面的实际机制与排查点。

网页版不是独立客户端,而是手机端的一个受信设备。理解这一点,就能解释大部分「为什么必须手机在线」「为什么换浏览器要重新扫码」的问题。

技术视角:网页版如何建立并保持会话

机制拆解

机制拆解

加密密钥的复用方式

网页版在扫码配对时,手机端会把该设备的身份公钥纳入会话,后续消息沿用 Signal 协议的端到端加密通道。服务器只负责存储与转发密文,无法解密内容。这也意味着网页端与手机端看到的是同一套密钥体系,移除设备等同于撤销该设备的解密能力。

浏览器会话如何保持

配对成功后,浏览器本地保存设备凭证,用于后续免扫码重连。凭证的有效期受手机端在线状态影响:手机连续约 14 天未联网,关联会话可能失效。清除浏览器站点数据会直接导致凭证丢失,需要重新扫码。因此排查「突然要重新登录」时,先确认是否清理过缓存或使用了无痕窗口。

连接层与 WebSocket

网页版通过 443 端口上的 WebSocket 维持长连接,心跳间隔通常在数十秒级别。公司代理或防火墙如果中断长连接,页面会表现为「正在连接」或频繁掉线。排查时可在浏览器开发者工具的 Network 面板筛选 WS 请求,观察是否有反复重连或 101 以外的状态码。

断网后的增量同步

网络恢复后,网页端会向手机端请求最近 7 天的消息增量,而不是全量拉取。这解释了为什么长时间断网后部分旧消息可能不显示在网页端,但手机端仍然完整。需要完整记录时,以手机端为准或使用手机端的导出功能。

多设备并发时的状态一致性

同一账号的多台设备共享消息队列,已读回执与删除操作以最后写入为准。并发操作时可能出现短暂不一致,通常在 1 分钟内自动校正。若长期不一致,刷新页面触发一次增量同步即可,不必反复退出重登。

常见连接状态对照

页面表现可能原因建议动作
二维码不显示脚本被拦截或浏览器版本过旧允许 JavaScript,升级浏览器
扫码后一直连接中WebSocket 被代理拦截放行 443 端口 WS 流量
频繁掉线网络抖动或心跳被中断切换网络,检查代理超时设置
消息延迟手机端后台被限制加入电池优化白名单

技术排查问答

为什么清除浏览器缓存后需要重新扫码?

设备凭证保存在浏览器本地存储中,清除站点数据会一并删除凭证,服务端无法识别该设备,只能重新配对。若只是想解决页面异常,优先尝试刷新或退出后重登,避免直接清空全部站点数据。

开发者工具里看到 WebSocket 反复重连正常吗?

偶发重连属于正常现象,但每隔几秒重连一次通常意味着连接被中间设备中断。检查代理超时设置、防火墙长连接策略,以及是否有安全软件对加密流量做了拦截。稳定环境下连接应能维持较长时间。

网页端能拿到完整的聊天记录吗?

网页端只保留本地缓存与最近 7 天的增量同步范围,不适合作为完整归档。需要完整记录时在手机端使用导出功能,生成的文件再通过文件传输发送到电脑。

多台设备同时在线会影响加密安全吗?

每台设备有独立的设备身份,撤销某台设备不会影响其他设备的解密能力。风险主要来自设备凭证泄露,因此公共电脑上应主动退出并在手机端移除设备,而不是只关闭浏览器标签页。

企业网络需要放行哪些流量?

至少需要允许 443 端口的 HTTPS 与 WebSocket 流量,并避免代理对长连接做过早的超时切断。具体域名以官方文档为准,本站不提供网络策略配置服务,建议由网络管理员按实际抓包结果调整。

确认环境没问题,直接开始使用

回到使用指南按三步操作,或先看常见问题排查。