Allow screen share takeover
This commit is contained in:
@@ -327,6 +327,20 @@ const server = http.createServer(async (req, res) => {
|
||||
};
|
||||
|
||||
if (event.sharing) {
|
||||
const previous = presentationStates.get(roomId);
|
||||
if (previous?.peerId && previous.peerId !== payload.from) {
|
||||
broadcast(roomId, payload.from, {
|
||||
type: "presentation-state",
|
||||
from: previous.peerId,
|
||||
peerId: previous.peerId,
|
||||
name: previous.name,
|
||||
sharing: false,
|
||||
reason: "takeover",
|
||||
replacedBy: payload.from,
|
||||
replacedByName: event.name,
|
||||
updatedAt: Date.now()
|
||||
});
|
||||
}
|
||||
presentationStates.set(roomId, { ...event, peerId: payload.from });
|
||||
} else if (presentationStates.get(roomId)?.peerId === payload.from) {
|
||||
presentationStates.delete(roomId);
|
||||
|
||||
Reference in New Issue
Block a user