我在第一次嘗試在項目中使用server sent events
,我對此很興奮。因爲我終於可以告別AJAX了。 (我喜歡AJAX,但不喜歡我現在正在做的事情)。任何方式,我試圖使用服務器發送的事件來檢查我的服務器(PHP腳本)的ping,如果發生ping,顯示一個簡單的警報('你好世界');在我的頁面。Javascript:在PHP中使用服務器發送的事件?
但是,我不知道爲什麼我從來沒有在我的網頁上得到任何東西..沒有錯誤要麼表明出了問題。
這是我的JavaScript服務器發送代碼:
var pin =localStorage.getItem("pin");
var evtSource = new EventSource("https://example.com/check-for-orders.php?pin="+pin+"");
evtSource.addEventListener("ping", function(e) {
var data = JSON.parse(e.data);
alert(data);
alert('Hello World');
}, false);
,這是我的PHP代碼:
<?php
header("Access-Control-Allow-Origin: *");
header("Content-Type: text/event-stream");
header("Cache-Control: no-cache");
//header("Connection: keep-alive");
session_start();
//Don't forget to enable mod_headers module in httpd.conf.
include "../config/connect.php";
// This block grabs the whole list for viewing
$pin = $_GET['pin'];
$pin2 = $pin.', ';
$sql = "SELECT * FROM orders WHERE something=0 LIMIT 1";
$query = mysqli_query($db_conx, $sql);
$productCount2 = mysqli_num_rows($query);
if ($productCount2 > 0) {
while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){
$id2 = $row["id"];
$full_address = $row["full_address"];
$drop_address = $row["drop_address"];
$uPhone = $row["uPhone"];
$ulat = $row["ulat"];
$ulng = $row["ulng"];
$ORDER_ID = $row["order_id"];
echo "event: ping\n";
echo "".$ORDER_ID." - Pick Up Location: ". $full_address ."";
echo "<br /><br />";
echo "Drop Location: ".$drop_address.", Phone: ".$uPhone."";
}
} else {
}
mysqli_close($db_conx);
?>
可能有人請告知這個問題?
任何幫助,將不勝感激。
將消息放入代碼的其他部分,然後嘗試。 –
@DhirenVasoya,抱歉,我沒有明白你的意思!什麼信息? – Jackson
在上面的代碼中,有一部分目前是空白的,就像這樣。 else {echo「有一些錯誤」; } –