feat: Implement real-time message delivery for conversations via WebSocket integration and update admin seed email.
This commit is contained in:
@@ -175,13 +175,8 @@ export class MessagesGateway implements OnGatewayConnection, OnGatewayDisconnect
|
||||
data.message,
|
||||
);
|
||||
|
||||
// Broadcast to other clients in the conversation room (exclude sender)
|
||||
client
|
||||
.to(`conversation:${data.conversationId}`)
|
||||
.emit('new_message', message);
|
||||
|
||||
// Also send directly to the other participant's socket(s)
|
||||
// so they receive the message even if they haven't joined this room
|
||||
// Send directly to the other participant's socket(s)
|
||||
// This is the primary delivery mechanism — works even if they haven't joined the room
|
||||
try {
|
||||
const participants = await this.messagesService.getConversationParticipants(data.conversationId);
|
||||
if (participants) {
|
||||
@@ -194,6 +189,12 @@ export class MessagesGateway implements OnGatewayConnection, OnGatewayDisconnect
|
||||
this.logger.warn(`Failed to get participants for direct delivery in ${data.conversationId}: ${participantError.message}`);
|
||||
}
|
||||
|
||||
// Also broadcast to the conversation room as a fallback
|
||||
// (client.to excludes sender; recipients dedup by message ID)
|
||||
client
|
||||
.to(`conversation:${data.conversationId}`)
|
||||
.emit('new_message', message);
|
||||
|
||||
return { success: true, message };
|
||||
} catch (error) {
|
||||
return { error: error.message };
|
||||
|
||||
Reference in New Issue
Block a user