94451
Goto Top

PHP Daten "Streamen"

Hallo ihr Profis face-smile,

Ziel ist es von einer Maschine Daten möglichst live auszulesen, der versuch ein iFrame einzubinden und dieses per Javascript im 100ms Takt auszulesen ist leider fehlgeschlagen (hier wehrt sich irgendeine Policy). Keine Angst, ich darf das, dass ist lediglich eine Intranetanwendung... die Policy lässt sich leider nur so einfach nicht "Ausnahmsweise" anpassen :/

mit file_get_contents(), kann ich eine Seite aufrufen und mir hier den Kompletten HTML-Code holen... Hier kann ich auch via DOM ziemlich einfach mir genau die bereiche auslesen die ich brauch...
Leider dauert das Laden ein paar Sekunden...

Jetzt die Frage ob es mit PHP die Möglichkeit gibt eine art Stream aufzubauen...
mein Ziel mit Javascript war es kurz eine Verbindung aufzubauen und dann die "live Verbindung" ständig auszulesen. Geht sowas mit PHP?

ich habe folgenden Befehl gefunden:
stream_get_contents

leider weiß ich nicht mit umzugehen!
=> Ich will am "ziel" keine Änderungen vornehmen ich will lediglich möglichst Live LESEN!
bzw. Änderungen will ich insofern haben, dass ich die Ausgabe komplett NEU gestalten will... während auf der Seite zig Ausgaben sind will ich nur bestimmte... dafür das ganze gleich von mehreren Maschinen auf einer Seite...

Content-Key: 302871

Url: https://administrator.de/contentid/302871

Ausgedruckt am: 28.03.2024 um 22:03 Uhr

Mitglied: 114757
114757 26.04.2016 aktualisiert um 10:17:48 Uhr
Goto Top
Zitat von @94451:

Hallo ihr Profis face-smile,

Ziel ist es von einer Maschine Daten möglichst live auszulesen, der versuch ein iFrame einzubinden und dieses per Javascript im 100ms Takt auszulesen ist leider fehlgeschlagen (hier wehrt sich irgendeine Policy).
Welche ich dir hier schon genannt habe face-wink

Jetzt die Frage ob es mit PHP die Möglichkeit gibt eine art Stream aufzubauen...
mein Ziel mit Javascript war es kurz eine Verbindung aufzubauen und dann die "live Verbindung" ständig auszulesen. Geht sowas mit PHP?
Nein, dazu bräuchtest eine Art Browser-Instanz (Unter .NET z.B. das IE-Browser-Control).

Ich würde stattdessen mal folgendes machen: Die Daten werden ja so wie es aussieht auf der Seite via XMLHTTP nachgeladen. Ich würde hier den Browser-Traffic mal analysieren (Browser-Tools F12 > Tab Netzwerk)) oder mich mit Wireshark in den Traffic hängen.
Dann kannst du dir diese GET-Requests mal anschauen und mit PHP oder JavaScript nachbauen und die Daten direkt an der Maschine abfragen wenn diese das erlaubt.

Aber ohne deine Maschine und deren Code zu kennen, leider wie immer ein Raten mit der Glasskugel face-confused
Da ist mehr Debugging am Live-Objekt nötig.

Gruß jodel32
Mitglied: 94451
94451 26.04.2016 um 14:01:51 Uhr
Goto Top
Hallo,

leider hilft der Netzwerkstream nicht wirklich weiter... hier laufen enorm viele Daten zu 99% verschlüsselt.
ABER ich kann auf der einzelnen Maschine DIREKT auf dem Webserver eine HTML lauf lassen bei dem ich dann mit Javascript in der Tat an meine Werte komme... Ich kann diese jetzt nahezu live (im 100ms Takt) schön als JSON Array ausgeben.

die Frage ist jetzt nur wie übertrage dieses Intelligent?

Das Array wird ja nur generiert wenn die Seite online ist :/

Einen Socketserver (was schon Sinnvoll wäre) will / kann ich nicht installieren... gibt es eine andere Möglichkeit? Kann ich in meiner Jetzigen HTML evtl. den ~origin zugriff~ zulassen und dann mir wieder VOM Server die Maschinen Daten holen!?

Eine Idee wäre gewesen einen Chat zu bauen, aber dann brauch ich ja "noch ein" Zwischensystem...
Mitglied: 114757
114757 26.04.2016 aktualisiert um 14:43:12 Uhr
Goto Top
Jetzigen HTML evtl. den ~origin zugriff~ zulassen und dann mir wieder VOM Server die Maschinen Daten holen!?
Ja kannst du wenn du dort eine PHP oder ASP.Net Seite ablegen kannst, dann kannst du den CORS Header setzen den ich dir bereits im anderen Thread genannt habe.
In die erste Zeile wenn es PHP ist
header('Access-Control-Allow-Origin:*');  

Bei ASP:
http://www.asp.net/web-api/overview/security/enabling-cross-origin-requ ...

Dann kannst du per Ajax deine Daten von der Seite abfragen.

Das Prinzip ist hier ja immer gleich, ein Serverseitiges Skript liefert nur die Daten aus und das JavaScript bestimmt die Zeit wann die Daten abgerufen werden, nicht anderst herum.

Was du an der Maschine machen könntest und was sie zulässt wissen wir hier ja leider nicht.

Zu Ajax mit jQuery findest du hier im Forum ja einige Beispiele.