Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

remote Browser Anzeige ändern

0 views
Skip to first unread message

Jan Novak

unread,
Jan 17, 2022, 10:28:00 AM1/17/22
to
Hallo,

auf einem Systen (a) läuft eine php Anwendung.
Auf einem 2. System (b) (rspi) läuft eine ganz einfache Diashow ( könnte
natürlich durch eine php Anwendung und Browser ersetzt werden).

Wenn das System A eine bestimmte Funktion startet, soll auf dem System B
im Browser eine bestimmte URL angezeigt werden, bis vom System A die
Meldung kommt, es soll wieder eine Diashow zeigen.

Beide System sind im gleichen lan (intranet). Sicherheitstechnisch sind
zunächst keine hohen Hürden da.

Meine Idee war zuerst, dass das System A eine URL des Systems B aufruft,
um diesem mit zu teilen, die Diashow (welche in einem Browser laufen
könnte und die Bilder aus einer DB holt) zu beenden und etwas anderes an
zu zeigen, bis der Aufruf kommt, die Diashow wieder zu zeigen.
Wenn allerdings im Browser eine Diashow läuft, wie kann dann der remote
Aufruf darauf reagieren?

Eine asynchrone Verarbeitung mit semaphore files wäre auch eine
Möglichkeit, aber meines Erachtens unschön. Alleine deswegen, weil dann
ja ein Dienst diese semaphore Files überwachen müsste und das zu eine
Zeitverzug käme.

Gibt es noch andere denkbare Lösung hierfür?


Jan

Arno Welzel

unread,
Jan 17, 2022, 12:10:56 PM1/17/22
to
Jan Novak:

> auf einem Systen (a) läuft eine php Anwendung.
> Auf einem 2. System (b) (rspi) läuft eine ganz einfache Diashow ( könnte
> natürlich durch eine php Anwendung und Browser ersetzt werden).
>
> Wenn das System A eine bestimmte Funktion startet, soll auf dem System B
> im Browser eine bestimmte URL angezeigt werden, bis vom System A die
> Meldung kommt, es soll wieder eine Diashow zeigen.
>
> Beide System sind im gleichen lan (intranet). Sicherheitstechnisch sind
> zunächst keine hohen Hürden da.
[...]

Es muss dennoch eine Kommunikation zwischen den Systemen stattfinden.

Statt aber einen Browser fernzusteuern wäre es wohl sinnvoller, wenn man
eine Website baut, die regelmäßig per XHR-Aufruf nachfragt (z.B. 1x pro
Sekunde), ob eine Änderung der Anzeige nötig ist und dann ggf.
umschaltet, wobei ein seitenfüllendes iframe-Element verwendet wird, so
dass das Script immer geladen bleibt.

Vereinfacht:

<html>
<head>
<style>
html, body { margin:0; padding:0; }
#content { width:100%; height:100%; }
</style>
</head>
<body>
<iframe id="content"></iframe>
<script>
// hier das Script zur steuerung dessen,
// was im iframe angezeigt werden soll
</script>
</body>
<html>

Wenn man Polling vermeiden will, wären auch Websockets denkbar, dann
müsste das Script aber als Dienst laufen und nicht mehr als Webanwendung:

<https://github.com/bloatless/php-websocket>


--
Arno Welzel
https://arnowelzel.de

Jan Novak

unread,
Jan 18, 2022, 12:57:37 AM1/18/22
to

On 17.01.22 18:10, Arno Welzel wrote:
> Jan Novak:
>
>> auf einem Systen (a) läuft eine php Anwendung.
>> Auf einem 2. System (b) (rspi) läuft eine ganz einfache Diashow ( könnte
>> natürlich durch eine php Anwendung und Browser ersetzt werden).
>>
>> Wenn das System A eine bestimmte Funktion startet, soll auf dem System B
>> im Browser eine bestimmte URL angezeigt werden, bis vom System A die
>> Meldung kommt, es soll wieder eine Diashow zeigen.
>>
>> Beide System sind im gleichen lan (intranet). Sicherheitstechnisch sind
>> zunächst keine hohen Hürden da.
> [...]
>
> Es muss dennoch eine Kommunikation zwischen den Systemen stattfinden.
>
> Statt aber einen Browser fernzusteuern wäre es wohl sinnvoller, wenn man
> eine Website baut, die regelmäßig per XHR-Aufruf nachfragt (z.B. 1x pro
> Sekunde), ob eine Änderung der Anzeige nötig ist und dann ggf.


Erzeugt diese Abfrage nicht eine hohe Last?
Der Client (System B) ist ein Raspi.


Jan

Jan Novak

unread,
Jan 18, 2022, 7:52:08 AM1/18/22
to

Am 17.01.22 um 18:10 schrieb Arno Welzel:
>
> Es muss dennoch eine Kommunikation zwischen den Systemen stattfinden.
>
> Statt aber einen Browser fernzusteuern wäre es wohl sinnvoller, wenn man
> eine Website baut, die regelmäßig per XHR-Aufruf nachfragt (z.B. 1x pro
> Sekunde), ob eine Änderung der Anzeige nötig ist und dann ggf.
> umschaltet, wobei ein seitenfüllendes iframe-Element verwendet wird, so
> dass das Script immer geladen bleibt.
>
habe das mal ausprobiert... ist eigentlich recht trivial. In diesem
Zusammenhang habe ich aber noch eine weitere Frage:

Auf dem System A liegen die Daten, welche vom System B abgefragt werden
sollen in der $_SESSION Variablen der PHP Anwendung.

Bekomme ich die denn bei einem externen Aufruf (vom System B) überhaupt
ausgelesen, oder muss ich diese Daten erst persistent (temporär)
irgendwo hinschreiben (DB/Filesystem/..) und dann von dem Aufruf
auslesen lassen?
Das würde bedeuten, das dieses Wegschreiben wieder überwacht und
gelöscht werden muss usw... ist ein wenig unschön.


Jan

Karl Pflästerer

unread,
Jan 18, 2022, 10:54:35 AM1/18/22
to
Da kümmert sich doch die Session drum. Und die Daten werden von PHP
natürlich persistiert (Filesystem, DB, ...) und bei jedem request
gelesen (anhand der sessionID im Cookie)
Wenn Cookies übertrafgen werden, funktioniert dies alles

Arno Welzel

unread,
Jan 28, 2022, 9:24:57 PM1/28/22
to
Jan Novak:

>
> Am 17.01.22 um 18:10 schrieb Arno Welzel:
>>
>> Es muss dennoch eine Kommunikation zwischen den Systemen stattfinden.
>>
>> Statt aber einen Browser fernzusteuern wäre es wohl sinnvoller, wenn man
>> eine Website baut, die regelmäßig per XHR-Aufruf nachfragt (z.B. 1x pro
>> Sekunde), ob eine Änderung der Anzeige nötig ist und dann ggf.
>> umschaltet, wobei ein seitenfüllendes iframe-Element verwendet wird, so
>> dass das Script immer geladen bleibt.
>>
> habe das mal ausprobiert... ist eigentlich recht trivial. In diesem
> Zusammenhang habe ich aber noch eine weitere Frage:
>
> Auf dem System A liegen die Daten, welche vom System B abgefragt werden
> sollen in der $_SESSION Variablen der PHP Anwendung.

Genauer: sie liegen in der Session des Clients, der das dazugehörige
Cookie hat. Jeder Client hat nämlich eine eigene Session auf dem Server.

> Bekomme ich die denn bei einem externen Aufruf (vom System B) überhaupt
> ausgelesen, oder muss ich diese Daten erst persistent (temporär)
> irgendwo hinschreiben (DB/Filesystem/..) und dann von dem Aufruf
> auslesen lassen?

Die Sessions *sind* persistent auf dem Dateisystem und werden von PHP
gelegentlich aufgeräumt, abhängig davon, wie es konfiguriert wurde.

Du musst bei den Anfragen natürlich auch immer das selbe Cookies senden,
was PHP beim ersten Aufruf generiert, wenn eine neue Session angelegt wird.

> Das würde bedeuten, das dieses Wegschreiben wieder überwacht und
> gelöscht werden muss usw... ist ein wenig unschön.

Das macht PHP für Dich schon selber.
0 new messages