mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-12 01:37:06 +02:00
SSE: padding APRES caught_up (16Ko) au lieu de dessus - le dernier message n'est plus la queue coincee dans le tampon proxy
This commit is contained in:
1 parent
51c2c2d80f
commit
faa377e64f
1 file changed
+10
-4
+10
-4
@@ -338,10 +338,16 @@ func (c *Conversation) Subscribe(ctx context.Context, from int, emit func(map[st
|
||||
last = s
|
||||
}
|
||||
}
|
||||
// Padding aussi sur caught_up : force le flush de la QUEUE du replay à travers un
|
||||
// proxy qui re-bufferise par lots (Cloudflare) → les derniers messages arrivent
|
||||
// avec le reste, plus 20-30 s après.
|
||||
if !emit(map[string]any{"caught_up": true, "pad": strings.Repeat("·", 2048)}) {
|
||||
if !emit(map[string]any{"caught_up": true}) {
|
||||
return
|
||||
}
|
||||
// Le padding doit venir APRÈS caught_up, pas dessus. Un proxy (Cloudflare) garde
|
||||
// toujours le DERNIER bout de flux en tampon jusqu'au prochain flush (~2-3 s). En
|
||||
// envoyant un gros pad juste après, ce sont ses octets — et non le dernier vrai
|
||||
// message — qui deviennent la « queue » qui attend : le dernier message et
|
||||
// caught_up, eux, sont poussés dehors immédiatement. Le client ignore `pad`.
|
||||
// 16 Ko : largement au-dessus du tampon de coalescence d'un proxy courant.
|
||||
if !emit(map[string]any{"pad": strings.Repeat("·", 16384)}) {
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user