Я пытаюсь создать систему уведомлений на основе HTML5, основанную на том, когда что-то происходит в таблице в моей базе данных. Я специально сделал таблицу для этой функции уведомлений. Вот как это работает:
- Страница «Отправленные сервером события» (
sse.html
) будет ссылаться наsource.php
для содержания уведомлений. action.php
содержит действие, которое инициирует уведомление об изменении содержимого путем вставки данных в таблицу.source.php
будет периодически проверять наличие новых данных в таблице. Он должен передать уведомление, если оно есть.
Мой вопрос возможно ли это сделать без проверки таблицы?
Я думаю об использовании cURL для прямой отправки контента в source.php
, когда выполняется действие в action.php
. Можно ли это сделать?
Я видел, как cURL используется с заголовком HTTP Content-Type
, установленным на text/event-stream
, но я не знаю, как его использовать.
sse.html
<!DOCTYPE html>
<html>
<body>
<script>
var source = new EventSource('source.php');
source.onmessage = function(event){
var text = event.data;
window.webkitNotifications.createNotification('', 'Alert', text).show();
}
</script>
</body>
</html>
source.php
header("Content-Type: text/event-stream");
header("Cache-Control: no-cache");
mysql_connect("localhost", "user", "pass");
mysql_select_db("eventstream");
$q = mysql_query("select textnotif from notification where read='0'");
$r = mysql_fetch_array($q);
$notif = $r[textnotif];
if($notif != ""){
echo "data: ".$notif.PHP_EOL;
}