Search code examples
htmlserver-side

HTML5 - Server side events - Using external text file as data input


I am attempting of using a plain text-file (text.txt) as part of html5 - server side events.

Currently I am not seeing any printout of text in browser. If just running this line, without using an external file for input data, it works:

echo "data: test\n\n";

Question: What do I need to adjust to make the external file data to be visible in the browser, assuming the setup of below files?

My html file

  <h1>SSE</h1>
  <div id="result"></div>

  <script>
      // Create an object
      var source = new EventSource("updater.php");
      // Detect message receipt
      source.onmessage = function(event) {
          // Write the received data to the page
          document.getElementById("result").innerHTML += event.data + "<br>";
      };
  </script>

my php file

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

// Include files
  echo include("text.txt");

flush();
?>

my text file:

"data: t1972\n\n";

Solution

  • The solution for the question, works if using [file_get_contents] as specified below.

      $data = file_get_contents('text.txt');
      echo "data: " . $data . "\n\n";
    

    This also means that the file [text.txt] is left with only text, removing the [data: ] and [\n\n].