From f0e16837d6d2c83e2657716d74ac9b94a9917b55 Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Mon, 21 Jul 2025 17:07:08 +0800 Subject: [PATCH] :bug: Chat related two bug fixes --- .../Chat/RealtimeCallController.cs | 2 ++ .../Connection/WebsocketHandler.cs | 15 +++++++-------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/DysonNetwork.Sphere/Chat/RealtimeCallController.cs b/DysonNetwork.Sphere/Chat/RealtimeCallController.cs index 274fd58..dd5db3e 100644 --- a/DysonNetwork.Sphere/Chat/RealtimeCallController.cs +++ b/DysonNetwork.Sphere/Chat/RealtimeCallController.cs @@ -19,6 +19,7 @@ public class RealtimeCallController( IConfiguration configuration, AppDatabase db, ChatService cs, + ChatRoomService crs, IRealtimeService realtime ) : ControllerBase { @@ -64,6 +65,7 @@ public class RealtimeCallController( .Include(c => c.Sender) .FirstOrDefaultAsync(); if (ongoingCall is null) return NotFound(); + ongoingCall.Sender = await crs.LoadMemberAccount(ongoingCall.Sender); return Ok(ongoingCall); } diff --git a/DysonNetwork.Sphere/Connection/WebsocketHandler.cs b/DysonNetwork.Sphere/Connection/WebsocketHandler.cs index 5a2c84b..2abb843 100644 --- a/DysonNetwork.Sphere/Connection/WebsocketHandler.cs +++ b/DysonNetwork.Sphere/Connection/WebsocketHandler.cs @@ -6,7 +6,7 @@ using Grpc.Core; namespace DysonNetwork.Sphere.Connection; -public class WebSocketHandlerGrpc(PusherService.PusherServiceClient pusher, ChatRoomService crs) +public class WebSocketHandlerGrpc(PusherService.PusherServiceClient pusher, ChatRoomService crs, ChatService cs) : PusherHandlerService.PusherHandlerServiceBase { public override async Task ReceiveWebSocketPacket( @@ -34,8 +34,10 @@ public class WebSocketHandlerGrpc(PusherService.PusherServiceClient pusher, Chat if (packet.Data == null) { - await SendErrorResponse(request, - "Mark message as read requires you to provide the ChatRoomId and MessageId"); + await SendErrorResponse( + request, + "Mark message as read requires you to provide the ChatRoomId" + ); return; } @@ -56,11 +58,8 @@ public class WebSocketHandlerGrpc(PusherService.PusherServiceClient pusher, Chat await SendErrorResponse(request, "User is not a member of the chat room."); return; } - - var readReceipt = new MessageReadReceipt { SenderId = sender.Id }; - - var bufferService = context.GetHttpContext().RequestServices.GetRequiredService(); - bufferService.Enqueue(readReceipt); + + await cs.ReadChatRoomAsync(Guid.Parse(currentUser.Id), requestData.ChatRoomId); } private async Task HandleMessageTyping(ReceiveWebSocketPacketRequest request, ServerCallContext context)