Ich möchte senden, wenn es etwas Neues gibt. Aber sind die Clients mit dieser Technik jederzeit auf Empfang?
Tja. Das wird komplizierter.
PHP-Skript:
prüfen ob ein get-Parameter mit crc32 oder md5-Hash gesendet wurde. Wenn nicht für $oldCRC32 false annehmen Daten lesen, crc32 oder md5-Hash bilden. Hash mit gesendeten bzw, angenommen vergleichen: (Du darfst Syntaxfehler selbst bereinigen.)
<?php
header('Content-Type: text/json');
header('Cache-Control: no-cache');
$out['retry']=1000;
if ( ! isset($_GET['crc32']) ) {
$oldCRC32=false;
} else {
$oldCRC32=$_GET['crc32'];
}
$text=file_get_contents('file.txt');
$newCRC32=crc32($text);
if (false===$oldCRC32 or $newCRC32 != $oldCRC32) {
$out['data']=$text;
$out['crc32']=$newCRC32;
} else {
header('Content-Type: text/json');
header('Cache-Control: no-cache');
$out['crc32']=$oldCRC32;
}
echo json_encode($out);
Dann musst Du das Zeug nur in JS auswerten und die CRC32-Summe an den Request als Parameter anhängen.
Du kannst die crc32-summe auch in eine Datei schreiben, musst dann aber daran denken immer diese Datei mit zu ändern oder zu löschen und dann durch Dein Skript neu anlegen zu lassen.