以前限制web開發接近原生應用的一大障礙就是web開發很難實現即時通訊。因為在web應用中,由於其使用的http協議的特殊性,只有使用者在介面中進行操作後,伺服器的到客戶端的資訊,才能進行響應。也就是說,使用web開發接近原生應用的一大障礙是伺服器端不能主動向客戶端傳送資訊。
即時通訊技術就是實現這樣一種功能:伺服器端可以即時地將資料的更新或變化反映到客戶端。在web中,由於瀏覽器的限制,實現即時通訊需要借助一些方法,這種限制出現的主要原因是:一般的web通訊都是瀏覽器先傳送請求到伺服器,伺服器再進行響應來完成資料的更新。
1. 短輪詢
長輪詢指的是當伺服器收到客戶端發來的請求後不會直接進行響應,而是先將這個請求掛起,再判斷伺服器端資料是否有更新。如果有更新,就進行響應,如果一直沒有資料更新,就在達到一定的時間限制(伺服器端設定)後關閉連線。
長輪詢和短輪詢比起來,明顯減少了很多不必要的http請求次數,節約了資源。但是,連線的掛起會導致資源的浪費。
3. 長連線(sse)
sse是html5新增的功能,全稱為server-sent events,它可以允許伺服器推送資料到客戶端。它也是基於http協議的,但是本質上與輪詢不同,因為輪詢需要客戶端先傳送請求。sse最大的特點就是不需要客戶端傳送請求,只要服務端資料有更新,就可以馬上發送到客戶端。
sse的優勢很明顯,不需要建立或保持大量的客戶端發往伺服器端的請求,節約了很多資源,提公升了應用的效能。
4. websocket
websocket是html5定義的乙個新協議,該協議可以實現伺服器與客戶端之間的雙工通訊。首先,需要在客戶端和伺服器端建立乙個連線,這部分需要基於http,一旦建立連線,客戶端和伺服器端就處於平等地位,可以相互傳送資料,不存在請求和響應的區別。缺點是伺服器端的邏輯非常複雜。
從相容性角度考慮:
短輪詢》長輪詢》長連線》websocket
從效能方面考慮:
websocket>長連線》長輪詢》短輪詢
mysql 即時通訊 即時通訊IM模板
更新記錄 1.0.3 2020 10 22 完成點對點通訊功能,修復若 ug。1.0.2 2020 06 02 1 增加登入 註冊 個人資訊頁面 speedy im 注意介紹 正在持續開發中,目前僅部分ui開發完成。demo im.apk 已有基礎ui以及登陸 點到點聊天等功能。開發客戶端測試賬號密...
大話WEB端的即時通訊實現方案
本文的例子請點選這裡 首先,解釋下,何為長 短連線 所謂長連線,指在乙個連線上可以連續傳送多個資料報,然後斷開連線,在連線保持期間,如果沒有資料報傳送,需要雙方發鏈路檢測包。短連線是指通訊雙方有資料互動時,就建立乙個連線,資料傳送完成後,則斷開此連線,即每次連線只完成一項業務的傳送。這是百科裡的介紹...
即時通訊系統
企業擁有一套理想的即時通訊系統,正如找到了一位得心應手的商務秘書。然而,縱觀當前企業即時通訊市場,同質化的即時通訊軟體比比皆是,而能夠讓企業真正根據自身需要來按需定製 人性化開發的即時通訊系統卻少之又少。傳統開發理念讓企業被動使用即時通訊。目前,大多數的軟體提供商還在用傳統的開發理念來開發企業即時通...