HTML5 服務(wù)器發(fā)送事件(Server-Sent Events)

HTML5 服務(wù)器發(fā)送事件(Server-Sent Events)允許網(wǎng)頁(yè)獲得來(lái)自服務(wù)器的更新

Sever-Sent事件 -單項(xiàng)消息傳遞
Sever-Sent事件指的是網(wǎng)頁(yè)自動(dòng)獲取來(lái)自服務(wù)器的更新
以前也可能做得到這一點(diǎn)够委,前提是網(wǎng)頁(yè)不得不詢問是否有可用的更新,通過服務(wù)器發(fā)送時(shí)間永丝,更新能夠自動(dòng)到達(dá)
例子:FaceBook/Twitter跟新剔难,估價(jià)更新褒纲,新的博文,賽事結(jié)果等

接受Sever-Sent事件通知
EventSource對(duì)象用于接受服務(wù)器發(fā)送事件通知:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鳥教程(runoob.com)</title>
</head>
<body>
<h1>獲取服務(wù)端更新數(shù)據(jù)</h1>
<div id="result"></div>

<script>
if(typeof(EventSource)!=="undefined")
{
var source=new EventSource("demo_sse.php");
source.onmessage=function(event)
{
document.getElementById("result").innerHTML+=event.data + "
";
};
}
else
{
document.getElementById("result").innerHTML="抱歉钥飞,你的瀏覽器不支持 server-sent 事件...";
}
</script>

</body>
</html>
實(shí)例解析:
1.創(chuàng)建一個(gè)新的EventSource對(duì)象莺掠,然后規(guī)定發(fā)送更新的頁(yè)面URL(本例中是“demo.sse.php”)
2.沒接收到一次更新,就會(huì)發(fā)生onmessage事件
3.當(dāng)onmessage事件發(fā)生時(shí)读宙,把已接受的數(shù)據(jù)推入id為“result”的元素中

檢測(cè)Server-Sent事件支持
一下實(shí)例彻秆,編寫了一段額外的代碼來(lái)檢測(cè)服務(wù)器發(fā)送事件的瀏覽器支持情況
if (type(EventSource) !== "undefined")
{
//瀏覽器支持 Server-Sent
//一些代碼
} else {
//瀏覽器不支持 Server-Sent
}

服務(wù)器代碼實(shí)例
未來(lái)讓上面的例子可以運(yùn)行,還需要能夠發(fā)送數(shù)據(jù)更新的服務(wù)器(比如PHP 和 ASP)
服務(wù)器端事件流的語(yǔ)法是非常簡(jiǎn)單的结闸,把"Content-Type"報(bào)頭設(shè)置為"text/event-stream".現(xiàn)在唇兑,可以開始發(fā)送事件流了
實(shí)例:
<?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');

$time = date('r');
echo "data: The server time is: {$time}\n\n";
flush();
?>

ASP 代碼 (VB) (demo_sse.asp):
<%
Response.ContentType="text/event-stream"
Response.Expires=-1
Response.Write("data: " & now())
Response.Flush()
%>

代碼解釋:
1.把報(bào)頭"Content-Type"設(shè)置為"text/event-stream"
2.規(guī)定不對(duì)頁(yè)面進(jìn)行緩存
3.輸出發(fā)送日期(始終以"data:"開頭)
4.向網(wǎng)頁(yè)刷新輸出數(shù)據(jù)

EventSource對(duì)象
在上面的例子中,我們使用onmessage時(shí)間來(lái)獲取消息桦锄,不過還可以使用其他事件
事件 描述
onopen 當(dāng)通往服務(wù)器的連接被打開
onmessage 當(dāng)接收到消息
onerror 當(dāng)發(fā)生錯(cuò)誤

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末扎附,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子结耀,更是在濱河造成了極大的恐慌留夜,老刑警劉巖匙铡,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異碍粥,居然都是意外死亡鳖眼,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門嚼摩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)钦讳,“玉大人,你說(shuō)我怎么就攤上這事枕面≡缸洌” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵潮秘,是天一觀的道長(zhǎng)琼开。 經(jīng)常有香客問我,道長(zhǎng)唇跨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任衬衬,我火速辦了婚禮买猖,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘滋尉。我一直安慰自己玉控,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布狮惜。 她就那樣靜靜地躺著高诺,像睡著了一般。 火紅的嫁衣襯著肌膚如雪碾篡。 梳的紋絲不亂的頭發(fā)上虱而,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音开泽,去河邊找鬼牡拇。 笑死,一個(gè)胖子當(dāng)著我的面吹牛穆律,可吹牛的內(nèi)容都是我干的惠呼。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼峦耘,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼剔蹋!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起辅髓,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤泣崩,失蹤者是張志新(化名)和其女友劉穎少梁,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體律想,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡猎莲,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了技即。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片著洼。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖而叼,靈堂內(nèi)的尸體忽然破棺而出身笤,到底是詐尸還是另有隱情,我是刑警寧澤葵陵,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布液荸,位于F島的核電站,受9級(jí)特大地震影響脱篙,放射性物質(zhì)發(fā)生泄漏娇钱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一绊困、第九天 我趴在偏房一處隱蔽的房頂上張望文搂。 院中可真熱鬧,春花似錦秤朗、人聲如沸煤蹭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)硝皂。三九已至,卻和暖如春作谭,著一層夾襖步出監(jiān)牢的瞬間稽物,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工折欠, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留姨裸,地道東北人皇拣。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓扫俺,卻偏偏與公主長(zhǎng)得像赵抢,于是被迫代替她去往敵國(guó)和親状蜗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子按价,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容