✨ Improved typing indicator
This commit is contained in:
		@@ -360,8 +360,10 @@ public class AccountService(
 | 
			
		||||
            await nty.UnsubscribePushNotifications(session.Challenge.DeviceId);
 | 
			
		||||
 | 
			
		||||
        // The current session should be included in the sessions' list
 | 
			
		||||
        db.AuthSessions.RemoveRange(sessions);
 | 
			
		||||
        await db.SaveChangesAsync();
 | 
			
		||||
        await db.AuthSessions
 | 
			
		||||
            .Include(s => s.Challenge)
 | 
			
		||||
            .Where(s => s.Challenge.DeviceId == session.Challenge.DeviceId)
 | 
			
		||||
            .ExecuteDeleteAsync();
 | 
			
		||||
 | 
			
		||||
        foreach (var item in sessions)
 | 
			
		||||
            await cache.RemoveAsync($"{DysonTokenAuthHandler.AuthCachePrefix}{item.Id}");
 | 
			
		||||
 
 | 
			
		||||
@@ -49,9 +49,20 @@ public class MessageTypingHandler(ChatRoomService crs) : IWebSocketPacketHandler
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        var responsePacket = new WebSocketPacket
 | 
			
		||||
        {
 | 
			
		||||
            Type = "messages.typing",
 | 
			
		||||
            Data = new Dictionary<string, object>()
 | 
			
		||||
            {
 | 
			
		||||
                ["room_id"] = sender.ChatRoomId,
 | 
			
		||||
                ["sender_id"] = sender.Id,
 | 
			
		||||
                ["sender"] = sender
 | 
			
		||||
            }
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        // Broadcast read statuses
 | 
			
		||||
        var otherMembers = (await crs.ListRoomMembers(request.ChatRoomId)).Select(m => m.AccountId).ToList();
 | 
			
		||||
        foreach (var member in otherMembers)
 | 
			
		||||
            srv.SendPacketToAccount(member, packet);
 | 
			
		||||
            srv.SendPacketToAccount(member, responsePacket);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user