DANGER
本页由 AI 工具参考代码编写,尚未经过人工审核,内容仅供参考。如果无法解决问题或需要协助部署,可邮箱联系:kuohu@getastra.cn
WebSocket
通俗解释
HTTP 请求像发短信,一来一回就结束了。WebSocket 像打电话,建立连接后双方可以随时说话。服务器可以主动推消息给客户端,不用等客户端来问。
AstraSchedule 用 WebSocket 实时通知客户端更新课表。后台保存数据后,服务器会自动向相关班级的客户端广播 SyncConfig 消息,客户端收到后立即拉取最新配置,不用等它们自己来查。
专业解释
WebSocket 是一种网络通信协议,提供全双工通信通道,允许服务器主动向客户端推送数据。
与 HTTP 对比:
- HTTP:客户端请求 → 服务器响应(单向发起)
- WebSocket:建立连接后,双方可随时发送数据(双向)
在 AstraSchedule 中:
- 地址格式:
ws://{host}/ws/{school}/{grade}/{class_number} - 消息类型:
SyncConfig(配置同步广播) - 广播触发:仅由服务端在数据写入成功后自动发起(课表/科目/作息/设置/自动任务/倒数日/备份导入/结构变更等),客户端无法从外部发起广播
- 心跳:25 秒间隔 ping
- 重连:指数退避算法,初始 1 秒,最大 30 秒
Serverless 模式下不支持 WebSocket(返回 501),客户端在启动、重连或手动操作时拉取配置。