Ich arbeite derzeit mit Server-Gesendete Ereignisse und ich habe ein seltsames Problem. Da die Veranstaltung geht weiter, bis jeder Iteration Ich erhalte den folgenden Fehler:Ob_end_flush generiert konstante Fehler
ob_end_flush(): failed to delete and flush buffer. No buffer to delete or flush in
Mein Code für den Server-Event Server Side ist wie folgt:
<?php
require "connect.php";
session_write_close();
header("Content-Type: text/event-stream\n\n");
$savedcount = 0;
while (1) {
// Who's mechanism
$query = $mysqli->query("SOME QUERY");
$rowcount = $query->num_rows;
if ($savedcount != $rowcount) {
// echo stuff
$savedcount = $rowcount; // only echo stuff if there is new content
}
ob_end_flush();
flush();
sleep(2);
}
?>
ich nicht vollständig Puffer zu verstehen. Bevor Sie davon ausgehen, dass dies eine schreckliche Praxis ist, sollten Sie wissen, dass Server-Sent-Ereignisse speziell sind. Dies ist ein ähnliches Skript, das auf MDN angezeigt wird. Aus diesem Grund bin ich mir nicht ganz sicher, warum ich diese Fehler ständig erhalte.
Vorschläge?
Bevor Sie den Inhalt des Puffers senden können, müssen Sie einen mit [ob_start()] starten (http://php.net/manual/en/function.ob-start.php). Mit while (1) wird dieses Skript ausgeführt, bis der Server es zur maximalen Ausführungszeit stoppt. Ist es das was du willst? – larsAnders
Ja, das ist, was Sie brauchen, damit Server-Gesendete Ereignisse richtig funktionieren – Shawn31313
Starten Sie den Puffer mit: 'ob_start();' – Rasclatt