# Synchronisation von Gesprächen zwischen mehreren Tabs

**URL:** <https://community.gladysassistant.com/t/synchronisation-des-conversations-entre-plusieurs-onglets/6113>\
**Category:** Développement\
**Created:** [15. Februar 2021 um 13:53 UTC](https://community.gladysassistant.com/t/synchronisation-des-conversations-entre-plusieurs-onglets/6113 "2021-02-15T13:53:45Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![cicoub13](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/cicoub13/32/4482_2.png) [@cicoub13](https://community.gladysassistant.com/u/cicoub13)\
**Post date:** [15. Februar 2021 um 13:53 UTC](https://community.gladysassistant.com/t/synchronisation-des-conversations-entre-plusieurs-onglets/6113/1 "2021-02-15T13:53:45Z")

</div>

Zu [https://github.com/GladysAssistant/Gladys/pull/1051](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](https://github.com/GladysAssistant/Gladys/issues/553) behebt

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

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).

 ![gladys_conversation](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/6/651e7a07927f7b088599c084812e254ca4f77655.png)

Seht ihr einen anderen Ansatz?

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [15. Februar 2021 um 14:01 UTC](https://community.gladysassistant.com/t/synchronisation-des-conversations-entre-plusieurs-onglets/6113/2 "2021-02-15T14:01:48Z")

</div>

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

> [@cicoub13](#):
>
> Die vom Frontend generierten IDs und die der Datenbank haben nichts miteinander zu tun.

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

---

<div class="post-metadata">

**Author:** ![cicoub13](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/cicoub13/32/4482_2.png) [@cicoub13](https://community.gladysassistant.com/u/cicoub13)\
**Post date:** [15. Februar 2021 um 16:32 UTC](https://community.gladysassistant.com/t/synchronisation-des-conversations-entre-plusieurs-onglets/6113/3 "2021-02-15T16:32:31Z")

</div>

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).

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [15. Februar 2021 um 16:35 UTC](https://community.gladysassistant.com/t/synchronisation-des-conversations-entre-plusieurs-onglets/6113/4 "2021-02-15T16:35:15Z")

</div>

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 🙂
