Zum Inhalt springen

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.

  • 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: true gestartet wurde.

Guida authentifiziert Remote-View-Clients nicht separat von Remote Ops. Sichern Sie den Kanal extern.

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.

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" }

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.

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.

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.

{
"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.