PHP服务器发送事件未触发

时间:2019-06-25 16:48:53

标签: php server-sent-events

我正在尝试在用户将数据发送到端点后触发服务器发送事件更新。我的目标是从端点内调用sendMsg函数。这两个功能位于单独的文件中。

如果在同一个文件中调用sendMsg函数,并且将前端eventSource设置为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()的调用移到与该函数相同的文件中,那么即使没有任何新更改,更新也会不断发送到客户端。

0 个答案:

没有答案