Remote View
Remote View ist eine Remote-Ops-Funktion zum Betrachten eines Guida-Browser-Tabs von einem anderen Client aus. Sie nutzt die Chrome-DevTools-Protocol-Brücke von WebView2 für Frames und einen WebSocket-Stream für Frames und Eingabemeldungen.
Remote View ist nützlich für Browser-Dashboards, leichte Steueroberflächen und Beobachter im privaten Netzwerk, die sehen müssen, was ein Guida-Knoten tut, ohne vor dem Desktop zu sitzen.
Voraussetzungen
Abschnitt betitelt „Voraussetzungen“- Die Remote Ops API muss aktiviert sein.
- Der Client muss Bind-Adresse und Port erreichen können.
- Eingaben werden nur akzeptiert, wenn die Sitzung mit
allowInput: truegestartet wurde.
Guida authentifiziert Remote-View-Clients nicht separat von Remote Ops. Sichern Sie den Kanal extern.
Sitzung starten
Abschnitt betitelt „Sitzung starten“Rufen Sie browser.remoteView.start über POST /api/ops/rpc auf:
{ "jsonrpc": "2.0", "id": "view-1", "method": "browser.remoteView.start", "params": { "tabId": "optional-tab-id", "transport": "websocket", "allowInput": true, "quality": 75, "maxFps": 15 }}Ohne tabId wird der aktive Browser-Tab verwendet. Das Ergebnis enthält unter anderem sessionId, tabId, webSocketUrl, frameFormat, inputEnabled, nodeId und nodeName.
WebSocket-Nachrichten
Abschnitt betitelt „WebSocket-Nachrichten“Server-zu-Client-Nachrichten umfassen session.started, frame, error, pong und session.stopped. Frame-Nachrichten enthalten JPEG-Daten und Viewport-Metadaten.
Client-zu-Server-Nachrichten umfassen:
{ "type": "ping" }{ "type": "session.stop" }{ "type": "input.pointer", "event": "down", "x": 120, "y": 80, "button": "left", "clickCount": 1 }{ "type": "input.wheel", "x": 120, "y": 80, "deltaX": 0, "deltaY": -240 }{ "type": "input.key", "event": "down", "key": "Enter", "code": "Enter" }Koordinatenabbildung
Abschnitt betitelt „Koordinatenabbildung“Der Client muss Bildkoordinaten auf die mit jedem Frame gesendeten Viewport-Metadaten abbilden. Bildgröße, CSS-Größe und Browser-Eingabeviewport sind nicht zwangsläufig identisch.
Das ist besonders wichtig, wenn der Client Frames skaliert, Guida einen Desktop-Fit-Viewport nutzt, ein Mobil-/Tablet-Preset aktiv ist oder der Frame Offsets enthält. Pointer-Eingaben müssen im Guida-Eingabekoordinatensystem gesendet werden.
Mobile und Touch
Abschnitt betitelt „Mobile und Touch“Bei mobilen oder Tablet-Presets aktiviert Guida Geräte- und Touch-Emulation. Remote View leitet Pointer-Eingaben dann passend als CDP-Touch-Input weiter. Clients senden weiterhin dieselben Remote-View-Protokollnachrichten; Guida entscheidet anhand des aktuellen Viewport-Modus.
Anzeige im betrachteten Tab
Abschnitt betitelt „Anzeige im betrachteten Tab“Während einer Remote-View-Sitzung zeigt Guida im beobachteten Tab eine Anzeige, damit der lokale Benutzer sieht, dass der Tab betrachtet oder gesteuert wird. Sitzungen ohne Eingabe zeigen Remote Viewing; Sitzungen mit Eingabe zeigen Remote Control. Die Anzeige gehört zur Guida-Browserchrome, nicht zum Seiteninhalt, und verschwindet beim Sitzungsende.
Sitzung stoppen
Abschnitt betitelt „Sitzung stoppen“{ "jsonrpc": "2.0", "id": "view-stop-1", "method": "browser.remoteView.stop", "params": { "sessionId": "remote-view-session-id", "reason": "operator closed viewer" }}browser.remoteView.status listet aktive Sitzungen.
Nächste Schritte
Abschnitt betitelt „Nächste Schritte“- Remote Ops API - Steuerungsoberfläche aktivieren und RPC-Methoden aufrufen
- Automatisierungsmodus - CDP-gestützter Startmodus für Test-Harnesses
- Browser und DOM - Viewport- und DOM-Eingabe-APIs