LAN 聊天系统:GUI 与 Web 双端同步的一些思路
约 1 分钟· 248 字 431 次阅读
LAN 聊天系统同时有 GUI 客户端和 Web 界面,两端都要实时收到消息。这里记录几个在工程上踩过、也值得留下的点。
连接模型
服务端用 WebSocket 广播,GUI 端和 Web 端都是「订阅者」。关键不在于协议,而在于状态来源唯一:
- 消息以服务端落库为准,客户端只做展示;
- 重连后拉取缺失区间,而不是依赖离线缓存兜底。
跨浏览器交互一致性
Web 端早期大量使用原生 confirm(),在 Safari 和 Chrome 上表现不一致。后来统一换成自定义模态框,体验才稳定下来。这件事看似小,却直接影响「发消息前要不要再确认」这种关键路径。
调试要点
在 GUI 的事件循环里跑 WebSocket 服务时,注意不要让阻塞调用卡住主线程;用独立协程或线程承接网络 IO,UI 才能始终保持响应。