feat(streaming): add Screen Streaming plugin with WebRTC
New plugin: browser-based screen sharing via Chrome Screen Capture API. Multi-stream grid layout (Rustdesk-style tiles) with live previews. - Server: WebSocket signaling at /ws/streaming (SDP/ICE relay) - Server: http.createServer for WebSocket attachment - Frontend: StreamingTab with broadcaster/viewer modes - Frontend: tile grid, fullscreen viewer, LIVE badges - Supports multiple concurrent streams - Peer-to-peer video via WebRTC (no video through server) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
9ff8a38547
commit
29bcf67121
5 changed files with 1094 additions and 2 deletions
|
|
@ -2,6 +2,7 @@ import { useState, useEffect, useRef } from 'react';
|
|||
import RadioTab from './plugins/radio/RadioTab';
|
||||
import SoundboardTab from './plugins/soundboard/SoundboardTab';
|
||||
import LolstatsTab from './plugins/lolstats/LolstatsTab';
|
||||
import StreamingTab from './plugins/streaming/StreamingTab';
|
||||
|
||||
interface PluginInfo {
|
||||
name: string;
|
||||
|
|
@ -14,6 +15,7 @@ const tabComponents: Record<string, React.FC<{ data: any }>> = {
|
|||
radio: RadioTab,
|
||||
soundboard: SoundboardTab,
|
||||
lolstats: LolstatsTab,
|
||||
streaming: StreamingTab,
|
||||
};
|
||||
|
||||
export function registerTab(pluginName: string, component: React.FC<{ data: any }>) {
|
||||
|
|
@ -85,6 +87,7 @@ export default function App() {
|
|||
events: '\u{1F4C5}',
|
||||
games: '\u{1F3B2}',
|
||||
gamevote: '\u{1F3AE}',
|
||||
streaming: '\u{1F4FA}',
|
||||
};
|
||||
|
||||
return (
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue