[SDK] Match LiveKit participants against all backend identities

A member authenticated through the legacy JWT endpoint publishes under a
`user:device` identity, while one authenticated through the default
endpoint publishes under a hashed identity. Both are listed in the
membership's backend identities, so match against the whole list rather
than only the primary one.

On the SDK this is RTCMember.backendIdentities, which the LiveKit backend matches media and data packets against; the harness keys its tiles by the membership id, which the backend identity no longer tells apart.

(cherry picked from commit c9aad2a2b3279782d101c9bc6c80af0417ccbb92)
This commit is contained in:
Robin
2026-10-13 13:00:58 +02:00
committed by Timo K.
parent 7685947a69
commit de8b5d98ec
5 changed files with 28 additions and 19 deletions
+3 -3
View File
@@ -185,14 +185,14 @@ function showMembers(
.subscribe(([local, remote]) => {
const current = local === null ? remote : [local, ...remote];
for (const [id, tile] of tiles)
if (!current.some((m) => m.rtcBackendIdentity === id)) {
if (!current.some((m) => m.memberId === id)) {
tile.remove();
tiles.delete(id);
}
for (const member of current)
if (!tiles.has(member.rtcBackendIdentity)) {
if (!tiles.has(member.memberId)) {
const tile = memberTile(scope, member);
tiles.set(member.rtcBackendIdentity, tile);
tiles.set(member.memberId, tile);
members.append(tile);
}
});