我目前正在尝试为一群专门的人创建一个小型聊天网站。
除了我继续完全迷失其中的一个主要部分外,该网站的大部分内容都是完整的并且可以正常工作。
仅当 MySQL 中的一个数据库已更新时,我才需要从服务器发送数据。
首先,我不知道如何让 PHP 每秒或更少地递归地检查这个数据库。我曾尝试使用 AJAX,但注意到这太频繁地轮询服务器并使用太多带宽,我还尝试使用服务器发送事件但无济于事,因为它仅每 3 秒发送一次数据,这太慢了.
简而言之; 我需要一种推送服务,它每隔 1 秒或更短时间定期向客户端发送数据,并且仅在需要时才会这样做。
while(1)
{
$result = mysqli_query($con,"SELECT Username, Message, DateT FROM Chat ORDER BY ID DESC LIMIT 30");
$list = array();
echo "data: ";
while($row = mysqli_fetch_array($result))
{
echo '<tr><td class="user">'.$row['Username'].'</td><td class="text">'.base64_decode($row['Message']).'</td><td class="time">'.$row['DateT'].' [GMT]</td></tr>';
}
echo PHP_EOL.PHP_EOL;
flush();
ob_flush();
sleep(1);
}