Witam.
Otóż przesyłam pewne dane z serwera za pomocą server-sent events. Służą mi do tego dwa poniższe kawałki kodu:
header("Content-Type: text/event-stream");
header('Cache-Control: no-cache');
session_start();
$data = file_get_contents("chat.txt");
$trimmed = rtrim($data, "\n");
$data_array = explode("\n", $trimmed);
$last_line = end($data_array);
if($last_line != $_SESSION['last_line'])
{
echo "data: $last_line\n\n";
echo "rentry: 1000\n";
$_SESSION['last_line'] = $last_line;
}
$group=$_SESSION['group'];
$connect = new PDO('mysql:host=localhost;dbname=test', 'root', '');
$status = $connect-> query("SELECT user, expire, online FROM php WHERE id_group=$group");
$users_online="";
while($row=$status->fetch())
{
if($row['expire']>$row['online'] || $row['user']==$_SESSION['user'])
{
$users_online.=$row['user']." ";
}
}
echo "online: {$users_online}\n\n";
flush();
var chatStream = new EventSource("chat_stream.php");
chatStream.onmessage = function(e)
{
var chat = document.getElementById('chat');
chat.innerHTML += e.data;
chat.lastChild.scrollIntoView(false);
var string = e.online;
var users = string.split(" ");
var i=0;
while(users[i]!=null)
{
document.getElementById("status-"+users[i]).className="online";
i++;
}
}
Problem tkwi w tym, że nic od 8 linii we fragmencie kodu JavaScript się nie wykonuje, nawet jeśli chcę coś wyświetlić w konsoli. Nie mam pojęcia o co chodzi, a męczę się z tym już długo. Dodam, że dane przesyłają się prawidłowo, a pierwsza część kodu JS działa tak jak powinna.
Z góry dzięki za pomoc.