• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Frage ständige Bereitschaft zum Datenempfang

colaholiker

Mitglied
Guten Tag,

ganz allgemein suche ich, wie im Thema angegeben, nach einer Methode um an eine Webseite kurze Datensätze zu senden, die zu diesem Zeitpunkt als Variable in js verarbeitet werden können (und dann "was" auf einer Webseite anzeigen).

Mit Fetch und Get muß ja die Webseite Daten anfordern. Da meine Daten sporadisch eintreffen, ist das nicht so gut.
Im Netz habe ich das gefunden. Die "Window.name"- Methode scheint mir ein gangbarer Weg zu sein.

Die URL- Methode könnte auch klappen, und wäre noch einfacher. Aber im Hinblick auf spätere Anwendungen mit evtl. größeren Datenblöcken habe ich diese Methode erstmal ausgeklammert.

Gibt es evtl. noch bessere Lösungen?

-danke-
 
Werbung:
Von der "Window-name"-Methode höre ich zum ersten Mal und wenn ich mir die Beschreibung auf Selfhtml durchlese, kann ich nicht erkennen, wie sie deine Aufgabe lösen könnte.

Der gängige Weg, um eine Aktualisierung durch den Server zu erreichen, sind die Websockets. Allerdings erfordert die einzige Implementierung, die mir bekannt ist, node.js und ich weiß nicht, ob Du das auf deinem Server installieren kannst. Wenn nicht, musst Du prüfen, ob es etwas anders gibt was Websockets unterstützt.
 
ganz allgemein suche ich, wie im Thema angegeben, nach einer Methode um an eine Webseite kurze Datensätze zu senden, die zu diesem Zeitpunkt als Variable in js verarbeitet werden können (und dann "was" auf einer Webseite anzeigen).
d.h. vom Server sollen Nachrichten an den Browser geschickt werden, oder? Dann suchst du wohl WebSockets - so ganz einfach ist das aber nicht, da natürlich am Server auch was laufen muss.

Im Netz habe ich das gefunden. Die "Window.name"- Methode scheint mir ein gangbarer Weg zu sein.
Nein. Die Seite beschreibt nur den Austausch von Nachrichten zwischen Seiten im Browser, nicht zwischen Server und Browser - zudem ist der Artikel veraltet, es gibt die Webstorage-Technik mit der sich Daten im Browser speichern lassen (ja, die Technik wird in dem Artikel erwähnt, allerdings nur am Ende im letzten Absatz).
 
Werbung:
Mh, klingt alles nicht so gut.

Von den Websockets kenne ich nur den Begriff. Und ja, node.js läßt sich auf den 'Servern' wohl nicht installieren.

Den Webstorage nutze ich bereits. Ist die Idee in diesem Fall, auf diesen vom 'Server' aus zuzugreifen? Stell ich mir schwierig vor.

Wie ist es mit der Methode über die URL Daten zu senden?
Hab ich zwar zuerst verworfen, aber so könnte ich ja einen Befehl übertragen, der eine einmalige Abfrage auslöst?
Dann ist die Größe der Datensätze egal!

PS: die URL-Methode im Link bezieht sich dann ja auch nur auf den Browser.
Aber ich kann inner noch eine geänderte URL vom Server schicken. Grund zum testen was da geht...
 
Leider kann ich mich an keine Details mehr erinnern über deine Server-Hardware und -Software. Außer dass die HTML-Seiten mit C++ generiert werden. Gib doch mal einige Stichworte. Verwendest Du irgend welche Bibliotheken?
Ich finde da einiges wenn ich nach "c++ webserver websockets" suche.
 
Hi Sempervivum,
Leider kann ich mich an keine Details mehr erinnern über deine Server-Hardware und -Software.
Kann ich auch garnicht nicht verlangen.
Stimmt aber, die 'Server' sind Mikroprozessoren mit SD-Karte.

Im Gegensatz zu 'damals' liegen die Webseiten auf diesen SD-Karten und werden nicht im C++-Code erzeugt. Das hat zur Folge, daß viel Platz vorhanden ist, Funktionen und css ausgelagert ist usw.

Im aktuellen Fall wird mein neuer Kühlschrank mit Temperatursensoren in 3 Ebenen + Gefrierfach überwacht. Diese Daten werden von der Webseite alle 2sec. abgefragt.

Sache ist die, daß ich auch auf dieser Webseite schalten kann, ob diese Werte auf die SD gespeichert werden oder nicht.
Dazu gibt es eine Quittung vom Gerät zur Webseite, und ich wollte sie bei jedem Speichern eines Datensatzes z.B. farblich ändern. Um ggf. eine Anzeige zu haben, daß der Prozess noch läuft.Ks_01.jpgKlick. So. Ui, das KS-Bild ist Quelle: AEG muß ich erwähnen.
Im Feld "keine Aufzeichnung" könnte ich die Anzeige einbauen.

Ich hatte mich in #1 allgemeiner gehalten, weil es viele Anwendungen so einer Funktion gäbe.
Verwendest Du irgend welche Bibliotheken?
Ich finde da einiges wenn ich nach "c++ webserver websockets" suche.

Ja es gibt viele Libraries in meinen C++- Programmen. Vielleicht gibt es auch eine für Websockets die ich einbauen könnte, muß mal nachsehen...

-ja es gibt einige!

Dieses Thema nehme ich mir aber für Vormittags vor (wie auch die URL-Idee), weil mein Grips dann besser läuft...
 
Werbung:
Naja, ich schalte auch Relais und so, da ist eine Quittung nach 2sec besser als nach 2min, oder?
Wenns eng wird kann ich natürlich den Timer umstellen, oder besser je Zweck verschiedene Timer nutzen.
Bitte sieh mir das nach: hab das vor 2 Jahren programmiert. Was ich gerade mache, ist die ganzen SD- Inhalte nach meinen Aktionen hier im Forum zu überarbeiten.

Interessant, weil es mir damals selbst eingefallen ist: beim Start so einer Webseite mißbrauche ich eine Timeout- Funktion, um einmalige Inhalte zu holen:
Code:
setTimeout(function() {
    //-- Aufruf 1x bei Start der Webseite
    getName();
    getIP();
    getVersion();
}, 2);

Hab inzwischen wegen Websockets nachgesehen. Das sieht wirklich vielversprechend aus.
Leider müßte ich bei allen Verwendungen auf asyncrone Webserver umstellen, und es gab mal einen Grund, warum ich darauf verzichtet hatte:-(
 
eine Timeout- Funktion, um einmalige Inhalte zu holen:
Code:
setTimeout(function() {
//-- Aufruf 1x bei Start der Webseite
getName();
getIP();
getVersion();
}, 2);
Die 2 ganz am Schluss rechnet in Millisekunden, ich erwarte, dass es da kaum einen Unterschied macht, wenn Du diese Aufrufe ohne Timeout ganz am Schluss der Seite notierst.
 
Werbung:
Ablass! Das ist alter Code, und ich dachte halt, so einen Auslöser zu haben.

Was genau bedeutet "am Schluss der Seite"? Vor </html>, </body> oder </function>?
Wobei die Funktionen ausgelagert sind, dorten?
 
Werbung:
Leider müßte ich bei allen Verwendungen auf asyncrone Webserver umstellen, und es gab mal einen Grund, warum ich darauf verzichtet hatte:-(
Möglicher Weise ist es gar nicht erforderlich, alles umzustellen: Du lädst ja einiges dynamisch mit fetch und die Seiten bzw. Inhalte, die Du dabei lädst, könnten eigentlich so bleiben wie sie sind.
 
Guten Abend Sempervivum,

Asyncrone Webserver (-Libraries) haben viele Vorteile. Heute konnte ich meine Kühlschrank- Software ganz einfach darauf umstellen. Den Hinderungsgrund von 'damals' hatte ich wohl schon wegprogrammiert (NTP-Zugriff evtl.???).

Auch ein Websockets- Beispiel bekam ich zum laufen. HTML-seitig ist der Aufwand überraschend gering.
Leider konnte ich den Websockets- Server nicht so einfach in mein Programm einbauen, das wird noch dauern.
Möglicher Weise ist es gar nicht erforderlich, alles umzustellen
Das ist garnicht meine Absicht.
Put/Get, Fetch und das Websocket- System werde ich wohl gemeinsam benutzen.
Durch Websocket möchte ich -erstmal- nur Quittungen vom Microprozessor bekommen, z.B. wenn dieser Prozesse beendet oder so.
Eine gute Idee hatte ich oben schon erwähnt: Der Microprozessor schickt ein Signal das der Webseite als Auslöser dient, z.B. um größere Datenmengen mit Fetch zu holen.

Na, die nächsten Tage werde ich wohl im C++ Bereich verbringen...
 
Zurück
Oben