|

Basit Web Bildirim Sistemi Yapmak



Ali Can Gönüllü tarafından 2022-04-04 12:04:45 tarihinde yazıldı. Tahmini okunma süresi 1 dakika, 31 saniye.



Çalışmalarım için bağış yapmak isterseniz Patreon hesabımdan bağışta bulunabilirsiniz.

Blog adresinde yazılanlar sadece eğitim amacıyla deneysel olarak hazırlanmıştır. Konu içerisinde geçen yöntemleri kendi oluşturduğunuz test ortamında denemenizi tavsiye ederiz.
Herhangi bir tarih, yer ve/veya mekanda oluşacak zararlardan alicangonullu.org, alicangonullu.org yöneticisi ve/veya konu yazarı mesul değildir.

Merhabalar,

Bu yazımda sizlere basit bir web push sistemi yapımını anlatacağım. Öncelikle bir veritaban ve bir PHP koduna ihtiyacımız var. PHP kodu şöyledir

class Bildirim {
    protected $host = "localhost";
    protected $dbname = "db1";
    protected $user = "root";
    protected $pass = "root";
    protected $db;
	public function __construct() {
		 try {
		 	$this->db = new PDO("mysql:host=$this->host;dbname=$this->dbname", $this->user, $this->pass);
		 	$this->db->query("SET CHARACTER SET 'utf8'");
		 	$this->db->query("SET NAMES 'utf8'");
		 }
        catch (PDOException $e) {
            die("SQL Sunucusuna Bağlanılamadı : ".$this->$e->getMessage()."");
        }
	}
	public function bildirim() {
		$stmt = $this->db->prepare("SELECT * FROM notify");
		$stmt->execute();
		$getlog = $stmt->fetchAll(PDO::FETCH_ASSOC);
		$json = json_encode($getlog);
		return $json;
	}
}

$data = json_decode($getir->bildirim(), true); // İsterseniz veritabandan JSON olarak verileri alabilirsiniz
session_start();
$x = 1;
foreach($data as $notify) {
    $count = $x++;
    if(empty($count)) {
        $_SESSION["kayit"] = "0";
    }
}
if($_SESSION["kayit"] < $count) {
    echo '{"status": "ok"}';
    $_SESSION["kayit"] = $count;
} else {
    echo '{"status": "no"}';
}

Bu dosyayı kaydediyoruz ardından bir JavaScript dosyası açmamız gerekiyor ve içerisine şunları yazıyoruz

function playSound(url) {
			const audio = new Audio(url);
			audio.play();
		  }
		function bildirim() {
			$.ajax({
				url: "file.php",
				context: document.body
			  }).done(function(data) {
				var json = JSON.parse(JSON.stringify(data));
				if(json.status === "no") {
					console.log("Bildirim yok");
				} else {
					playSound("notify.mp3");
					Push.create("Biri mail adresiyle giriş yapmış olabilir!");
					alert("Biri mail adresiyle giriş yapmış olabilir!");
					window.location.reload();
				}
			  });
		}
		setInterval(function(){bildirim();}, 3000);

notify.mp3 yerine istediğiniz bildirim sesini koyabilirsiniz. Bu kod üç saniyede bir sistemi kontrol edecektir. Push.JS ve benzeri bir kütüphane ile de bildirimleri Web Push şeklinde alabilirsiniz.

Okuduğunuz için teşekkür ederim!