您好,登錄后才能下訂單哦!
EventSource 推送(ajax普通輪詢)
<?php
/**
* Created by PhpStorm.
* User: zrj
* Date: 18-11-1
* Time: 下午6:50
*/
declare(strict_types=1);//開啟強類型模式
#訂閱
//curl -v "http://127.0.0.1:8100/sub?cname=ch2&seq=1"
#發布
//curl -v "http://127.0.0.1:8000/push?cname=ch2&content=hi"
//broadcast 廣播消息http://127.0.0.1:8000/broadcast?content=內容
//SSE
$sseSubscribeUrl = 'http://192.168.0.153:8100/sse?cname=ch2&seq=1';
//普通輪循方式
$subscribeUrl = 'http://192.168.0.153:8100/sub';
?>
<html>
<head>
<title>訂閱</title>
<script type="text/javascript" src="./js/jquery-1.9.1.js"></script>
<script type="text/javascript" src="./js/icomet.js"></script>
</head>
<body>
<div id="output"></div>
<script type="text/javascript">
if(window.EventSource) {
var eventSource = new EventSource("<?php echo $sseSubscribeUrl;?>");
eventSource.onmessage = function (e) {
document.body.innerHTML += e.data + '<br>';
};
//只要和服務器連接,就會觸發open事件 eventSource.addEventListener("open",function(){ console.log("和服務器建立連接"); }); //處理服務器響應報文中的load事件 eventSource.addEventListener("load",function(e){ console.log("服務器發送給客戶端的數據為:" + e.data); }); //如果服務器響應報文中沒有指明事件,默認觸發message事件 eventSource.addEventListener("message",function(e){ console.log("服務器發送給客戶端的數據為:" + e.data); }); //發生錯誤,則會觸發error事件 eventSource.addEventListener("error",function(e){ console.log("服務器發送給客戶端的數據為:" + e.data); }); } else{ console.log("服務器不支持EvenSource對象"); }
eventSource.addEventListener("open", function () {
console.log("和服務器建立連接");
});
//處理服務器響應報文中的load事件
eventSource.addEventListener("load", function (e) {
console.log("服務器load數據為:" + e.data);
});
//如果服務器響應報文中沒有指明事件,默認觸發message事件
eventSource.addEventListener("message", function (e) {
console.log("服務器發送給客戶端的數據為:" + e.data);
});
//發生錯誤,則會觸發error事件
eventSource.addEventListener("error", function (e) {
console.log("服務器error數據為:" + e.data);
});
}else{
console.log("服務器不支持EvenSource對象");
}
// var count = 0;
// var comet = new iComet({
// channel : 'ch2',
// subUrl : '<?php //echo $subscribeUrl;?>',
// callback : function (content, type) {
// count ++;
// var output = document.getElementById('output');
// var time = '' + (new Date());
// output.innerHTML += count + '. ' + time + ': (' + type + ') ' + content + '<br/>';
// }
// });
</script>
</body>
</html>
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。