Streaming: Bildschirmauswahl-Picker, Passwort optional, Windows-Toast-Notifications
- Electron: setDisplayMediaRequestHandler zeigt jetzt immer einen modalen Picker mit Thumbnails statt automatisch die letzte Quelle zu verwenden - Passwort bei Streams ist jetzt optional (Server + Frontend) - Streams ohne Passwort: direkter Beitritt ohne Modal - hasPassword wird korrekt im stream_available Event übertragen - Windows Toast-Notifications via Electron Notification API für "Stream gestartet" und "Neuer Stream" Events - Browser-Variante nutzt weiterhin Web Notification API Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
fa964318f2
commit
e146a28416
4 changed files with 123 additions and 21 deletions
|
|
@ -103,10 +103,6 @@ function handleSignalingMessage(client: WsClient, msg: any): void {
|
|||
return;
|
||||
}
|
||||
const password = String(msg.password || '').trim();
|
||||
if (!password) {
|
||||
sendTo(client, { type: 'error', code: 'PASSWORD_REQUIRED', message: 'Passwort ist Pflicht.' });
|
||||
return;
|
||||
}
|
||||
const streamId = crypto.randomUUID();
|
||||
const name = String(msg.name || 'Anon').slice(0, 32);
|
||||
const title = String(msg.title || 'Screen Share').slice(0, 64);
|
||||
|
|
@ -130,7 +126,7 @@ function handleSignalingMessage(client: WsClient, msg: any): void {
|
|||
// Notify all other clients
|
||||
for (const c of wsClients.values()) {
|
||||
if (c.id !== client.id) {
|
||||
sendTo(c, { type: 'stream_available', streamId, broadcasterName: name, title });
|
||||
sendTo(c, { type: 'stream_available', streamId, broadcasterName: name, title, hasPassword: password.length > 0 });
|
||||
}
|
||||
}
|
||||
console.log(`[Streaming] ${name} started "${title}" (${streamId.slice(0, 8)})`);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue