データベース内のテーブルで何かが発生したときに、HTML5 ベースの通知システムを作成しようとしています。この通知機能の表を特別に作成しました。これがどのように機能するかです:
- Server-Sent Events ページ (
sse.html
) はsource.php
、その通知内容について参照します。 action.php
テーブルにデータを挿入することによってコンテンツ変更通知をトリガーするアクションが含まれています。source.php
テーブル内の新しいデータを定期的にチェックします。通知がある場合は、通知を渡す必要があります。
私の質問は、テーブルをチェックせずにこれを行うことは可能ですか?
source.php
アクションが実行されたときにcURLを使用してコンテンツを直接送信することを考えていaction.php
ます。これはできますか?
Content-Type
HTTP ヘッダーを に設定して cURL が使用されているのを見たことがあります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;
}