Я пытаюсь запустить обновление отправленного сервером события после того, как пользователь отправляет данные в конечную точку. Моя цель - вызвать функцию sendMsg из конечной точки. Эти две функции находятся в отдельных файлах.
Функция sendMsg работает, если она вызывается в том же файле, а внешний интерфейсный источник событий установлен в файл функции sendMsg.
include 'sseFile.php';
/**
* Comment creation end point
*/
function createComment(){
$submittedComment = $_POST["comment"];
$comment = new comment();
$comment->setComment($submittedComment);
$comment->create();
sendMsg(); //the SSE fucntion in the other file.
}
//EOF
//File holding the SSE
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
/**
* Server side code for SSE.
* This returns the most recent comment to the front end.
*/
function sendMsg(){
$comment = new comment();
$comment->getLatestComment();
echo "data: {\"msg\": \"".addcslashes($comment->getComment()."}\n\n";
ob_flush();
flush();
}
Цель состоит в том, чтобы запускать SSE только тогда, когда пользователь отправляет данные в конечную точку. В приведенном примере данные не передаются на клиентскую сторону от SSE. Если я переместу вызов sendMsg () в тот же файл, что и функция, то обновления будут постоянно отправляться клиенту, даже если нет новых изменений.