Я пытаюсь создать систему уведомлений на основе 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;
}