長連接、長輪詢概述
用通俗易懂的話來說im軟件1個聊天就是一個長連接嗎?,長連接、長輪詢就是客戶端不停的向服務(wù)器發(fā)送請求以獲取最新的數(shù)據(jù)信息。這里的“不?!逼鋵嵤怯型V沟模皇俏覀?nèi)搜蹮o法分辨是否停止,它只是一種快速的停下然后又立即開始連接而已。
長連接、長輪詢多用在什么樣的情況下
長連接、長輪詢一般應(yīng)用與WebIM、和一些需要及時交互的網(wǎng)站應(yīng)用中。其真實案例有:WebQQ、Hi網(wǎng)頁版、 IM等。
如果你對服務(wù)器端的反向Ajax感興趣,可以參考這篇文章 DWR 反向Ajax 服務(wù)器端推的方式:
相關(guān)技術(shù)優(yōu)缺點對比
輪詢:客戶端定時向服務(wù)器發(fā)送Ajax請求,服務(wù)器接到請求后馬上返回響應(yīng)信息并關(guān)閉連接。
優(yōu)點:后端程序編寫比較容易。
缺點:請求中有大半是無用,浪費帶寬和服務(wù)器資源。
實例:適于小型應(yīng)用。
長輪詢:客戶端向服務(wù)器發(fā)送Ajax請求,服務(wù)器接到請求后hold住連接,直到有新消息才返回響應(yīng)信息并關(guān)閉連接,客戶端處理完響應(yīng)信息后再向服務(wù)器發(fā)送新的請求。
優(yōu)點:在無消息的情況下不會頻繁的請求,耗費資源小。
缺點:服務(wù)器hold連接會消耗資源,返回數(shù)據(jù)順序無保證,難于管理維護。
實例:WebQQ、Hi網(wǎng)頁版、 IM。
長連接:在頁面里嵌入一個隱蔵,將這個隱蔵的src屬性設(shè)為對一個長連接的請求或是采用xhr請求,服務(wù)器端就能源源不斷地往客戶端輸入數(shù)據(jù)。
優(yōu)點:消息即時到達,不發(fā)無用請求;管理起來也相對方便。
缺點:服務(wù)器維護一個長連接會增加開銷。
實例:Gmail聊天
Flash :在頁面中內(nèi)嵌入一個使用了類的 Flash 程序通過調(diào)用此Flash程序提供的接口與服務(wù)器端的接口進行通信,在收到服務(wù)器端傳送的信息后控制頁面的顯示。
優(yōu)點:實現(xiàn)真正的即時通信im軟件1個聊天就是一個長連接嗎?,而不是偽即時。
缺點:客戶端必須安裝Flash插件;非HTTP協(xié)議,無法自動穿越防火墻。
實例:網(wǎng)絡(luò)互動游戲。