PHP SSE (Server Sent Events) + KeyHelp

For topics beyond KeyHelp. / Für Themen jenseits von KeyHelp.
bernhard
Posts: 142
Joined: Fri 29. May 2020, 14:36

PHP SSE (Server Sent Events) + KeyHelp

Post by bernhard »

Hallo,

ich würde gerne PHP SSE verwenden, aber schaffe es leider nicht, das auf meinem KeyHelp Server zum Laufen zu bringen... Lokal auf Windows + Laragon läuft es sofort ohne Probleme.

Ich hab folgende PHP Datei sse.php (siehe https://developer.mozilla.org/en-US/doc ... ent_events )

Code: Select all

<?php
header("Cache-Control: no-cache");
header("Content-Type: text/event-stream");

$i = 0;
while(++$i<=10) {

  echo "event: ping\n";
  $curDate = date(DATE_ISO8601);
  echo 'data: {"time": "' . $curDate . '"}';
  echo "\n\n";

  file_put_contents(__DIR__."/dump.txt", "triggered@$curDate\n", FILE_APPEND);

  ob_end_flush();
  flush();

  if ( connection_aborted() ) break;

  sleep(1);
}

Und folgende index.php

Code: Select all

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
  const evtSource = new EventSource("sse.php", { withCredentials: true } );
  evtSource.onmessage = function(event) {
    console.log(event.data);
  }
  </script>
</body>
</html>

ein tail -f dump.txt liefert mir alle getriggerten events:
Image

Aber per Javascript kann ich leider nicht darauf zugreifen... nichts... Habt ihr Ideen?

Ich freue mich über Hilfe! Was könnte es da haben?

Danke im Voraus!
bernhard
Posts: 142
Joined: Fri 29. May 2020, 14:36

Re: PHP SSE (Server Sent Events) + KeyHelp

Post by bernhard »

Hat niemand eine Idee? :(
User avatar
Tobi
Community Moderator
Posts: 2812
Joined: Thu 5. Jan 2017, 13:24

Re: PHP SSE (Server Sent Events) + KeyHelp

Post by Tobi »

Ich mache solche Sachen mit jQuery.
Gruß,
Tobi


-----------------------------
wewoco.de
Das Forum für Reseller, Digital-Agenturen, Bildschirmarbeiter und Mäuseschubser
bernhard
Posts: 142
Joined: Fri 29. May 2020, 14:36

Re: PHP SSE (Server Sent Events) + KeyHelp

Post by bernhard »

Ähm... danke für die Antwort. Und zwar wie?
User avatar
Tobi
Community Moderator
Posts: 2812
Joined: Thu 5. Jan 2017, 13:24

Re: PHP SSE (Server Sent Events) + KeyHelp

Post by Tobi »

Gruß,
Tobi


-----------------------------
wewoco.de
Das Forum für Reseller, Digital-Agenturen, Bildschirmarbeiter und Mäuseschubser
bernhard
Posts: 142
Joined: Fri 29. May 2020, 14:36

Re: PHP SSE (Server Sent Events) + KeyHelp

Post by bernhard »

Es geht aber nicht um AJAX sondern um SSE :(

Hat niemand SSE mit KeyHelp am Laufen?
User avatar
Tobi
Community Moderator
Posts: 2812
Joined: Thu 5. Jan 2017, 13:24

Re: PHP SSE (Server Sent Events) + KeyHelp

Post by Tobi »

baumrock wrote: Sat 22. Jan 2022, 10:40 Es geht aber nicht um AJAX sondern um SSE :(
Deswegen sagte ich ja:
„Ich mache solche Sachen mit jQuery“
😂
Gruß,
Tobi


-----------------------------
wewoco.de
Das Forum für Reseller, Digital-Agenturen, Bildschirmarbeiter und Mäuseschubser
bernhard
Posts: 142
Joined: Fri 29. May 2020, 14:36

Re: PHP SSE (Server Sent Events) + KeyHelp

Post by bernhard »

Sehr lustig. "Solche Sachen" gehen aber nicht mit AJAX, sonst würde ich es ja einfach mit AJAX machen...

Trotzdem danke...
User avatar
OlliTheDarkness
Posts: 1854
Joined: Tue 14. Aug 2018, 16:41
Location: Essen (NRW)

Re: PHP SSE (Server Sent Events) + KeyHelp

Post by OlliTheDarkness »

baumrock wrote: Sun 16. Jan 2022, 19:47 Hallo,

ich würde gerne PHP SSE verwenden, aber schaffe es leider nicht, das auf meinem KeyHelp Server zum Laufen zu bringen... Lokal auf Windows + Laragon läuft es sofort ohne Probleme.

Ich hab folgende PHP Datei sse.php (siehe https://developer.mozilla.org/en-US/doc ... ent_events )

Code: Select all

<?php
header("Cache-Control: no-cache");
header("Content-Type: text/event-stream");

$i = 0;
while(++$i<=10) {

  echo "event: ping\n";
  $curDate = date(DATE_ISO8601);
  echo 'data: {"time": "' . $curDate . '"}';
  echo "\n\n";

  file_put_contents(__DIR__."/dump.txt", "triggered@$curDate\n", FILE_APPEND);

  ob_end_flush();
  flush();

  if ( connection_aborted() ) break;

  sleep(1);
}

Und folgende index.php

Code: Select all

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
  const evtSource = new EventSource("sse.php", { withCredentials: true } );
  evtSource.onmessage = function(event) {
    console.log(event.data);
  }
  </script>
</body>
</html>

ein tail -f dump.txt liefert mir alle getriggerten events:
Image

Aber per Javascript kann ich leider nicht darauf zugreifen... nichts... Habt ihr Ideen?

Ich freue mich über Hilfe! Was könnte es da haben?

Danke im Voraus!
Moin,
also SSE auf KH läuft wunderbar.
SSE auf KH
Mit freundlichen Grüßen
OlliTheDarkness

**************************************************************
Helden leben lange, Legenden sterben nie

:!: World Hack Organization :!:
**************************************************************
bernhard
Posts: 142
Joined: Fri 29. May 2020, 14:36

Re: PHP SSE (Server Sent Events) + KeyHelp

Post by bernhard »

Hallo OlliTheDarkness!

Vielen Dank für's testen!! Bei mir läuft es leider nicht: http://sse.baumrock.com/sse.html

Ich weiß aber nicht, woran das liegt bzw. wie ich das debuggen könnte?! Ich hab die Vermutung, dass es irgendwas mit GZIP zu tun hat. Kann das aber nicht verifizieren. Wäre über jeden Tipp dankbar!
User avatar
OlliTheDarkness
Posts: 1854
Joined: Tue 14. Aug 2018, 16:41
Location: Essen (NRW)

Re: PHP SSE (Server Sent Events) + KeyHelp

Post by OlliTheDarkness »

baumrock wrote: Sun 23. Jan 2022, 11:32 Hallo OlliTheDarkness!

Vielen Dank für's testen!! Bei mir läuft es leider nicht: http://sse.baumrock.com/sse.html

Ich weiß aber nicht, woran das liegt bzw. wie ich das debuggen könnte?! Ich hab die Vermutung, dass es irgendwas mit GZIP zu tun hat. Kann das aber nicht verifizieren. Wäre über jeden Tipp dankbar!
Kopier dir mal den 0815 Code bei mir im Link, ob es überhaupt grundsätzlich läuft.
Wenn meine Demo bei dir schon nicht läuft, haben wir ein grundsätzliches Problem.
Was schon sehr misteriös wäre.

Wenn es läuft, hast nen knaller in deinem Script, das schauen wir uns dann mal genauer an.
Mit freundlichen Grüßen
OlliTheDarkness

**************************************************************
Helden leben lange, Legenden sterben nie

:!: World Hack Organization :!:
**************************************************************
User avatar
OlliTheDarkness
Posts: 1854
Joined: Tue 14. Aug 2018, 16:41
Location: Essen (NRW)

Re: PHP SSE (Server Sent Events) + KeyHelp

Post by OlliTheDarkness »

Code: Select all

echo "event: ping\n";
  $curDate = date(DATE_ISO8601);
  echo 'data: {"time": "' . $curDate . '"}';
  echo "\n\n";

Code: Select all

echo "event: ping\n";
  $curDate = date(DATE_ISO8601);
  echo "data: Zeit {$curDate}";
  echo "\n\n";
EDIT

An gzip etc liegts nicht.
Fahr die selbe Anfrage mit gzip etc, wie du.
Last edited by OlliTheDarkness on Sun 23. Jan 2022, 11:50, edited 1 time in total.
Mit freundlichen Grüßen
OlliTheDarkness

**************************************************************
Helden leben lange, Legenden sterben nie

:!: World Hack Organization :!:
**************************************************************
bernhard
Posts: 142
Joined: Fri 29. May 2020, 14:36

Re: PHP SSE (Server Sent Events) + KeyHelp

Post by bernhard »

Ha - zu früh gefreut! Dein Beispiel funktioniert auch nicht so wie es sein soll ;)

Was dein Skript macht ist genau das gleiche wie bei mir: Es schickt den Request an sse.php, bricht dann aber den Stream ab und schickt einen neuen Request. Das ist also im Prinzip das gleiche wie ein AJAX request in einem setTimeout() oder setInterval(). Aber nicht ein richtiger SSE Stream, der mir Events schickt, die ich auslesen kann:

Image
bernhard
Posts: 142
Joined: Fri 29. May 2020, 14:36

Re: PHP SSE (Server Sent Events) + KeyHelp

Post by bernhard »

EDIT

An gzip etc liegts nicht.
Fahr die selbe Anfrage mit gzip etc, wie du.
Ja und du hast dasselbe Problem wie ich ;)
User avatar
OlliTheDarkness
Posts: 1854
Joined: Tue 14. Aug 2018, 16:41
Location: Essen (NRW)

Re: PHP SSE (Server Sent Events) + KeyHelp

Post by OlliTheDarkness »

baumrock wrote: Sun 23. Jan 2022, 11:59
EDIT

An gzip etc liegts nicht.
Fahr die selbe Anfrage mit gzip etc, wie du.
Ja und du hast dasselbe Problem wie ich ;)
Aber rein von der Logik her ist es doch korrekt.
Du musst regelmässig nen XHR absetzen.
Der Client muss die Daten ja erfragen.

Oder steh ich jetzt ganz neben der Spur und verstehe die gesamte Problematik grad nicht :lol: :lol:
Mit freundlichen Grüßen
OlliTheDarkness

**************************************************************
Helden leben lange, Legenden sterben nie

:!: World Hack Organization :!:
**************************************************************
Post Reply