Conduire le badge de courrier à partir de comptages non lus poussés, pas un sondage des années 30

Fixkamo-internal
Shipped
6 août 2026 à 11:59 UTC
Author
kamo
Commit
328a0bf

MailButton ran setInterval (fetchUnreadCount, 30x000) dans chaque onglet ouvert, et chaque cocher appelée /api/email/dossiers - un point d'extrémité qui ouvre chaque dossier dans la boîte aux lettres pour produire le seul entier dont le badge a besoin. L'e-mail WebSocket était déjà connecté mais n'a fait état que le courrier était arrivé, de sorte que son gestionnaire Le travail était de programmer un autre aller chercher. EmailService publie maintenant le compte lui-même sur /topic/email/unread/-memberId: un instantané sur la connexion, puis un sur chaque changement, y compris le jeu de un autre client de courrier - que le sondage ne pouvait que remarquer jusqu'à 30 heures en retard et L'ancien WebSocket ne pouvait pas remarquer du tout. utiliserEmailWebSocket s'abonne à ce sujet et expose la boîte de réception EmailWebSocketContext. Les instantanés portent l'instant où ils ont été lus et plus anciens ceux sont rejetés, donc une relivraison ne peut pas ressusciter un badge le membre juste Uniré rester nul jusqu'à ce que le premier instantané atterrit, donc "non connu Pourtant "ne rend jamais une plaquette d'identité. Le chemin REST ne survit que comme un froid repli pour un navigateur dont la prise ne est apparu: il s'est allumé quand le socket rapporte qu'il a abandonné, quand aucun instantané n'a sont arrivés à l'intérieur de la fenêtre de connexion, et - tout en étant déconnecté uniquement - sur la mise au point de l'onglet et par courriel: rétroaction de dossiers. Rien de tout cela n'est une minuterie.

All changes

Comme ce que tu vois expédier ?

Chacune de ces mises à jour atterrit automatiquement dans votre espace de travail. Commencez gratuitement et regardez-le grandir semaine après semaine.

Commencez gratuitement pour toujoursPrix de visualisation