alicangonullu tarafından 2022-04-04 12:04:45 tarihinde yazıldı. Tahmini okunma süresi 1 dakika, 31 saniye. 201 kere görüntülendi.
Disclaimer
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!