- Shipped
- 6. August 2026 um 11:59 UTC
- Author
- kamo
- Commit
- 328a0bf
MailButton lief setInterval(fetchUnreadCount, 30_000) in jedem geöffneten Tab, und jedes Tick namens /api/email/Ordner - ein Endpunkt, der jeden Ordner öffnet die Briefbox, um die eine ganze Zahl zu produzieren, die die Plakette benötigt. Die E-Mail WebSocket war bereits angeschlossen, aber nur berichtet, dass die Post angekommen war, so dass sein Handler ist Aufgabe war es, einen weiteren holen zu planen. EmailService veröffentlicht nun die Zählung selbst auf /topic/email/unread/<memberId? ein Schnappschuss auf connect, dann eine auf jede Änderung, einschließlich \Seen-Set von ein weiterer Mail-Client - den die Umfrage erst mit bis zu 30 Sekunden zu spät bemerken konnte und die alte WebSocket konnte überhaupt nicht bemerken. verwenden SieEmailWebSocket abonniert dieses Thema und setzt Posteingang Unread durch EmailWebSocketContext. Schnappschüsse tragen den Moment, in dem sie gelesen wurden und älter diejenigen werden weggeworfen, so dass eine redelivery nicht ein Abzeichen wiederbeleben kann, das Mitglied nur gelöscht. inboxUnread bleibt null, bis der erste Schnappschuss landet, so "nicht bekannt noch" nie als abgeklärte Abzeichen. Der REST-Pfad überlebt nur als kalter Fallback für einen Browser, dessen Sockel nie kam hoch: es feuert, wenn die Steckdose berichtet, dass es aufgegeben hat, wenn kein Schnappschuss hat kam innerhalb des Verbindungsfensters, und - während nur getrennt - auf Registerkarte und per E-Mail:folder-changed. Keiner davon ist ein Zeitschalter.