Synchronisation von Gesprächen zwischen mehreren Tabs

Zu https://github.com/GladysAssistant/Gladys/pull/1051
welches Spread own chat messages to other opened window of the same user (websocket) · Issue #553 · GladysAssistant/Gladys · GitHub behebt

Ich denke, wir sollten noch ein bisschen mehr darüber diskutieren, bevor wir es korrigieren :slight_smile:

Ich hatte dieses Sequenzdiagramm für die Lösung des Problems entworfen, aber die Geschichte mit den IDs ist etwas verwirrend. Die vom Frontend generierten IDs und die der Datenbank haben nichts miteinander zu tun.
Es ist das Frontend, das die Nachricht initiiert, das wissen muss, welche Nachricht es gesendet hat (um keine Duplikate zu haben, wenn der Backend diese Nachricht an alle Frontends verteilt, um sie zu synchronisieren).

Seht ihr einen anderen Ansatz?

Ich bin einverstanden, es ist besser, darüber zu sprechen :slight_smile:

Das ist genau das Problem. Meiner Meinung nach könnten wir eine ID clientseitig generieren und dieselbe ID auch datenbankseitig verwenden :slight_smile: Das würde das Problem lösen, oder?

Ich bin es nicht gewohnt, IDs auf der Frontend-Seite zu generieren, aber das würde das Problem tatsächlich lösen. Da es sich um UUIDv4 handelt, ist das in Ordnung (keine Kollisionen und es kann von der Frontend-Seite aus generiert werden).

Das ist in Systemen wie diesen, in denen Zustände an verschiedenen Orten synchronisiert werden müssen (mehrere Clients, Server, DB), relativ üblich: Ein UUID wird clientseitig generiert, das eine Ressource von Anfang bis Ende identifizieren kann :slight_smile: