From 93a59ae96dc5a2079480a823f30f56034c4d41ee Mon Sep 17 00:00:00 2001 From: yassinedorbozgithub Date: Wed, 12 Mar 2025 12:22:20 +0100 Subject: [PATCH 1/2] fix: synchronized sended messages cross account tabs --- api/src/chat/services/chat.service.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/api/src/chat/services/chat.service.ts b/api/src/chat/services/chat.service.ts index ec7b69e6..7220562f 100644 --- a/api/src/chat/services/chat.service.ts +++ b/api/src/chat/services/chat.service.ts @@ -47,6 +47,14 @@ export class ChatService { private readonly attachmentService: AttachmentService, ) {} + broadcastSendedMessages(event: EventWrapper) { + this.websocketGateway.broadcast( + event.getSender(), + event.getEventType(), + event._adapter.raw, + ); + } + /** * Ends a given conversation (sets active to false) * @@ -268,6 +276,7 @@ export class ChatService { // Already existing user profile // Exec lastvisit hook this.eventEmitter.emit('hook:user:lastvisit', subscriber); + this.broadcastSendedMessages(event); } this.websocketGateway.broadcastSubscriberUpdate(subscriber); From 0d64ca33f30c4a3e5dde0e482faa87cf9e209401 Mon Sep 17 00:00:00 2001 From: yassinedorbozgithub Date: Wed, 12 Mar 2025 12:35:15 +0100 Subject: [PATCH 2/2] fix: update broadcast method --- api/src/chat/services/chat.service.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/api/src/chat/services/chat.service.ts b/api/src/chat/services/chat.service.ts index 7220562f..6a28b315 100644 --- a/api/src/chat/services/chat.service.ts +++ b/api/src/chat/services/chat.service.ts @@ -47,7 +47,12 @@ export class ChatService { private readonly attachmentService: AttachmentService, ) {} - broadcastSendedMessages(event: EventWrapper) { + /** + * Synchronize sent messages cross opened websocket connections of the same account + * + * @param event - The received event + */ + private broadcastSentMessages(event: EventWrapper) { this.websocketGateway.broadcast( event.getSender(), event.getEventType(), @@ -276,7 +281,7 @@ export class ChatService { // Already existing user profile // Exec lastvisit hook this.eventEmitter.emit('hook:user:lastvisit', subscriber); - this.broadcastSendedMessages(event); + this.broadcastSentMessages(event); } this.websocketGateway.broadcastSubscriberUpdate(subscriber);