Optimize typing indicator

This commit is contained in:
2025-11-16 20:41:34 +08:00
parent aace3b48b1
commit 6252988390
2 changed files with 28 additions and 11 deletions

View File

@@ -193,7 +193,18 @@ public class ChatRoomService(
public async Task<List<Guid>> GetSubscribedMembers(Guid roomId)
{
var group = $"chatroom:subscribers:{roomId}";
var keys = await cache.GetGroupKeysAsync(group);
return keys.Select(k => Guid.Parse(k.Split(':').Last())).ToList();
var keys = (await cache.GetGroupKeysAsync(group)).ToList();
var memberIds = new List<Guid>(keys.Count);
foreach (var key in keys)
{
var lastColonIndex = key.LastIndexOf(':');
if (lastColonIndex >= 0 && Guid.TryParse(key.AsSpan(lastColonIndex + 1), out var memberId))
{
memberIds.Add(memberId);
}
}
return memberIds;
}
}
}