• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

HTML5 SSE Server-Sent Events VS. AJAX?????

TecEye

New member
So Leute melde mich mal wieder zurück,

habe in einem anderen Projekt SSE näher gelegt bekommen. Das Prinzip erscheint mir schlüssig und logisch. unidirektional vom Server zum Clienten.
Dennoch stelle ich in der Netzwerküberwachungskonsole fest, dass alle x (retry) sekunden eine GET Abfrage stattfindet. (Ich dachte es wird nur gefeuert wenn es was neues auf dem Server gibt, ala WebSockets) Wo also bitte bietet sich mir der Vorteil? Meine Ajax-Abfrage alle x (intervall) Sekunden macht das gleiche, sogar 100kb schlanker je Abfrage.
Hat da mal einer n Ansatz für mich?
 
Zuletzt bearbeitet:
hab grad die phpinfo gecheckt, habe max_execution_time auf 5000, retry ist alle 10, also dürfte da eigentlich nichts passieren -,-
 
das serverscript läuft also?
und das get geht an die gleiche adresse wie die eventsource?
dann sollte ja auch eine neue instanz deines serverscriptes gestartet werden (das beginnt also wieder von vorn), ist das so?
verwendest du ein framework was das kapselt oder nativ code auf dem client?
 
Wo kann ich sehen ob das Serverscript läuft?
Ja die Adresse ist immer die gleiche, ich beobachte die Netzwerkconsole von Chrome, und da sehe ich alle 10 Sekunden dass an die datei ein eventsource gestartet wird.
ich nutze jquery, aber das ist hier ja irrelevant, nutze für das SSE ein ganz simplen Code auf dem Client

Code:
if(typeof(EventSource) !== "undefined"){
		var sse	= new EventSource("./include/aras.php?code=Test");
		sse.onmessage	= function(e){
			$('#aras_antwort').text(e.data);
		}
	}else{
		statusLeiste(2,'Der Browser unterstützt kein SSE!','','','',0,3,0);
	}

und das passende PHP
Code:
<?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
// Includes
include_once("./config.inc.php");
include_once("./functions.php");
// Content
echo "retry: ".($secondschecktoken * 1000)."\n"; // 10 Sekunden
echo "data: ".$_GET['code']." ist angekommen\n\n";
flush();
?>
 
und wie?
Ziel soll danach sein, im php script sollen alle ungelesenen nachrichten gecountet werden, wenn die > 0 bzw != GET (also damit wenn er einmal zB 2 gesagt hat, dann geb ich dem die 2 wieder übers GET mit, damit nur was passiert wenn es wirklich was neues gibt) sind dann soll auf dem Client halt die counterbulb geändert werden
 
Zurück
Oben