Files
OJ2/docs/specs
yuetsh a47e051a49 docs(阶段5): 补验 WebSocket 经 Caddy 与机房那套 compose
演练报告里原来有两块是没验过的,补上:

## WebSocket 经 Caddy

学生盯着「判题中…」变成结果就靠这条路,而它经过 Caddy 的 handle /ws/*,
是配置最容易写错、又只在生产才暴露的一段。实测 upgrade 成功,301ms 内
收到两条推送:judging → finished(AC)。

## 机房那套 compose.school.yml

和服务器那套差别不小(没有 postgres、连远程库、端口 81、COOKIE_SECURE=false),
之前一次都没跑过。留下 oj-postgres 当「远程库」、其余换成 school 栈跑了一遍:
连库、首页、题目列表、登录、WS、完整判题全通。

其中特意验了 **Cookie 没带 Secure** —— 带了的话机房(http 直连 IP)会出现
「登录成功但立刻又变未登录」,是那种看起来毫无头绪的故障。

顺带确认机房的拓扑是「本地 Redis + 本地判题沙箱 + 远程库」,
判题不跨公网,只有数据库查询走公网。

演练用的是 docs/specs/schema.sql 只灌结构,盘上不留学生数据;跑完已清干净。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-08 03:33:00 -06:00
..