php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 05.07.2011, 14:21  
Benutzer
 
Registriert seit: 13.10.2008
Beiträge: 70
root66 befindet sich auf einem aufstrebenden Ast
Standard Echtzeitdaten

Hallo,

ich möchte Daten von mehreren Wetterstationen mit PHP aufbereiten und im Browser über Ajax darstellen.

Die Frage ist, wie kann ich die Daten (z.B. Windgeschwindigkeit) temporär zwischenspeichern, so dass ich sie ohne Umwege möglichst schnell an den Browser senden kann? Die MySQL-Datenbank möchte ich aus Performancegründen nur zur Archivierung der Daten nutzen.

Wie kann ich also temporäre Daten mehreren Clients schicken? Die Daten der Wetterstationen werden über seperate PHP Skripte ausgelesen. Es gibt also keine direkte Verbindung zu den AJAX Skripten. Also kann ich die Daten nicht einfach durchreichen. Eignet sich Memcache dafür?

Und wie kann ich die AJAX Request Intervalle möglichst kurz (Polling einmal pro Sekunde), aber dennoch ressourcenschonend gestalten? Leider sind die HTML5 WebSockets noch nicht fertig.

Danke,
root66
root66 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 05.07.2011, 14:23  
Erfahrener Benutzer
 
Registriert seit: 30.07.2008
Beiträge: 1.167
PHP-Kenntnisse:
Fortgeschritten
xm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Wie kann ich also temporäre Daten mehreren Clients schicken?
Gar nicht. Immer nur an einen gleichzeitig. Ein Stichwort wäre long polling, ein anderes comet

Zitat:
Eignet sich Memcache dafür?
Ja
xm22 ist offline   Mit Zitat antworten
Alt 05.07.2011, 15:09  
Benutzer
 
Registriert seit: 13.10.2008
Beiträge: 70
root66 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von xm22 Beitrag anzeigen
Gar nicht. Immer nur an einen gleichzeitig. Ein Stichwort wäre long polling, ein anderes comet
Ich meinte mit "Wie kann ich also temporäre Daten mehreren Clients schicken? "

die Tatsache, daß man normalerweise eine Datenbank nutzt, um allen Clients den gleichen Datenbestand zu liefern. Die Daten werden von einem Worker-Skript gesammelt, sollen in meinem Fall aber nicht in die Datenbank.

Die Frage ist dann, wie verteilt das Worker-Skript die Daten nun an die PHP-Ajax-Anfragen (seperates Skript)? Bei anderen Programmiersprachen kann man zwischen zwei Threads eine direkte Verbindung aufbauen und die Daten durchreichen.
root66 ist offline   Mit Zitat antworten
Alt 05.07.2011, 15:16  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ajax gibt der Anfrage etwas individuelles mit und der Server wertet dieses Etwas aus.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 05.07.2011, 15:16  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

die Antwort bleibt gleich - du schickst NIE etwas an mehrere CLients

der Client stellt einen Request (und wenn der nur im Abruf deiner Seite besteht)-> Webserver forkt einen neuen Workerprozess für DIESEN Client
Workerprozess "sieht" dass er PHP braucht -> startet php interpreter
Php-Interpreter beackert das Script, generiert html-Antwort (Preprocessor for hypertext Protocol) -> übergibt html an workerprozess -> php beendet, workerprozess sendet Antwort an den fragenden CLient -> workerprozess beendet.. da gibts immer nur 1 Client

also musst du wohl oder übel die Daten irgendwo "zwischen lagern" - Datenbank bzw Memcache wurde ja schon genannt
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 05.07.2011, 15:18  
Benutzer
 
Registriert seit: 13.10.2008
Beiträge: 70
root66 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von xm22 Beitrag anzeigen
Gar nicht. Immer nur an einen gleichzeitig. Ein Stichwort wäre long polling, ein anderes comet
Ich lese gerade folgendes zum "Long Polling":
"Wie schon angedeutet, ist AJAX Long Polling vor allem dann zu gebrauchen, wenn serverseitig nicht allzuviele Events eintreten, die dann aber möglichst sofort an die Clients weitergegeben werden sollen. Zum Beispiel bietet sich der Einsatz von Long Polling bei Shoutboxen an. Weniger geeignet hingegen ist es zum Beispiel für einen stärker frequentierten Chat, da dort zu viele Verbindungen zu schnell aufgebaut und getrennt würden."

Quelle:
http://wiki.ajax-community.de/tutori...comet-longpoll


In meinem Fall stehen immer Daten an (z.B. die aktuelle Windgeschwindigkeit) und ich muß nicht erst auf ein Ereignis warten.

Ist in dem Fall dann "Long Polling" doch nicht geeignet?
root66 ist offline   Mit Zitat antworten
Alt 05.07.2011, 15:21  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

es geht mehr um die Art und Weise - der Client fragt beim Server an, ob neue Daten vorliegen - und bekommt sie (aber eben jeder Client fragt individuell)
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 05.07.2011, 15:28  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Du hast noch nicht mal beschrieben, wer Deine Clients sind.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 05.07.2011, 15:30  
Benutzer
 
Registriert seit: 13.10.2008
Beiträge: 70
root66 befindet sich auf einem aufstrebenden Ast
Standard

Gerade gefunden:

http://jwebsocket.org/
root66 ist offline   Mit Zitat antworten
Alt 05.07.2011, 15:31  
Benutzer
 
Registriert seit: 13.10.2008
Beiträge: 70
root66 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Du hast noch nicht mal beschrieben, wer Deine Clients sind.
Aktuelle Webbrowser mit aktiviertem Javascript.
root66 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
echtzeitdaten, ajax longpoll, echtzeit-daten im browser, html echtzeitdaten, anzeige von echtzeitdaten in einem webbrowser, echtzeitdaten php, daten an client schicken php, php echzeit daten datenban, php ajax temporäre, xm22 php, ajax kostenlose echtzeitdaten

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:59 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum