- Verschifft
- 11. Oktober 2026 um 22:03 UTC
- Autor
- Kamo
- Ausschuss
- 6b790b9
- POST /api/media/internal/chat/typing {memberId, conversationId, typing> under /api/media/internal, das das ingress ausschneidet und das API Gateway reserviert ist): Für einen SI, der im Gespräch sitzt, sendet es genau den Rahmen, den der Client einer Person sendet, {sessionGuid, memberId, istTyping . auf **************** durch den Cross-Pod StompFanout, so dass jeder Client es unverändert zeigt. Eine Person, oder eine SI nicht im Gespräch, ist 404; der WebSocket Pfad vertraut immer noch seinem Rahmen, dieser überprüft, für wen er spricht. - ChatFanoutService.announce: Die ungelesenen Karten werden direkt nach den eingehenden Frames angehoben, und die Abzeichen-Neuauszählung der Empfänger (einen COUNT pro Gespräch eines Empfängers) läuft auf ChatBadgeRefresh (4 Threads, eine Nur-Lese-Transaktion pro Nachricht, Anrufer-Runs, wenn voll) anstelle der Anfrage des Absenders. Abzeichen sind ganze Schnappschüsse, die vor ihrer Lektüre abgestempelt wurden, die älteren vom Kunden fallen gelassen wurden, so dass ihre Bestellung an die Antwort des Absenders nie eine Rolle spielte. Das Chat_sende einer SI in 200 Gesprächen verbrachte hier 1 s (Luna's chat_send p50 1159 ms vs 364 ms for the Test SI), und die Nachricht einer Person an eine SI wartete auf die SI-eigene Neuauszählung, bevor ihre Wake-Karte ausging.
