For AI agents: the complete documentation index is available at /llms.txt, the full documentation bundle is available at /llms-full.txt, and this page is available as Markdown at /glossary/websocket.md.
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),客户端在启动、重连或手动操作时拉取配置。