SSE服務端發送事件

忽然想說一下長輪詢和短輪詢html

1. 短輪詢:重複發送Http請求,查詢目標事件是否完成,優勢:編寫簡單,缺點:浪費帶寬和服務器資源 
2. 長輪詢:在服務端hold住Http請求(死循環或者sleep等等方式),等到目標時間發生,返回Http響應。優勢:在無消息的狀況下不會頻繁的請求,缺點:編寫複雜。jquery

長輪詢通常用在 web im, im 實時性要求高, http 長輪詢的控制權一直在服務器端,http 短輪詢通常用在實時性要求不高的地方(上面的內容參考copy於https://www.cnblogs.com/hr2014/p/6203872.html)web

第一次看到SSE(server send Event 服務端發送事件)是在《Java EE開發的顛覆者spring boot實戰中的4.5.3看到的,其是基於http協議的,,本質上是保持一個http長鏈接,客戶端向服務端發送請求,在瀏覽器與服務器創建鏈接以後,等有數據更新後,服務端向瀏覽器主動發送消息。這樣能夠減小數量,減小服務器壓力。還有一個用的比較多的方案是WebSocket,但我不說!!spring

須要新式瀏覽器的支持,消息的格式是以」data:」開頭,以」\n\n「結尾,服務器端的響應的內容類型是「text/event-stream」。erver-sent Events 規範是 HTML 5 規範的一個組成部分,具體的規範文檔見參考資源。該規範比較簡單,主要由兩個部分組成:第一個部分是服務器端與瀏覽器端之間的通信協議,第二部分則是在瀏覽器端可供 JavaScript 使用的 EventSource 對象。
而客戶端對數據的通訊是經過js的EventSource來進行的,EventSource提供了三個事件:
一、open:當成功創建鏈接時產生
二、message:當接收到消息時產生
三、error:當出現錯誤時產生
直接使用便可。瀏覽器

模仿一個用例服務器

在index中寫上,這邊須要引入jquery.js:微信

瀏覽器訪問:.net

參考:server

http://www.52im.net/thread-335-1-1.htmlhtm

https://www.cnblogs.com/hr2014/p/6203872.html

http://blog.csdn.net/lambert310/article/details/52911889

 

微信公衆號:

相關文章
相關標籤/搜索