SSE の切断を 5 秒以内に検出してスレッドを片付ける

これまではタブを閉じた接続に気付くのが次の ping (最大20秒後) の書き込み
失敗時だった。受信側の EOF を select で見て、待ち受けの合間に確認する。
ping は経過時間で送るようにしたので、間隔 (20秒) は変わらない。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-01 09:48:37 +09:00
co-authored by Claude Opus 5
parent efc7180317
commit 0c312afaa5
2 changed files with 25 additions and 4 deletions
+1
View File
@@ -95,6 +95,7 @@ python chktime.py
動かしながら開いておく用途向けです。オン/オフの状態はブラウザに記憶されます(既定はオン)。
- サーバが `--interval` 秒ごとに jsonl を stat して変化を検出し、SSE(`/api/watch`)でブラウザに通知します。ブラウザ側は 1.2 秒まとめてから読み直します。
- タブを閉じた接続は 5 秒以内に検出して片付けます(20 秒ごとの ping を待ちません)。
- 更新時も**選択中のプロジェクト・タスク・スクロール位置・絞り込み・開いているタブは保たれます**。やりとりを末尾まで見ていた場合は、追記された行に追従して末尾に留まります。
- ヘッダ右の表示が状態です。`● 追従中` → 変化を検出すると `● 更新あり…` → 反映後に `● 更新 hh:mm:ss`。切断されると `● 切断(再接続待ち)` となり、自動で再接続します。
- オフの間に増えたぶんは、次にオンにした時点でまとめて取り込みます。