基於HTTP的長輪詢簡單實現

2022-06-26 15:45:12 字數 994 閱讀 6877

web客戶端與伺服器之間基於ajax(http)的常用通訊方式,分為短連線與長輪詢。

短連線:客戶端和伺服器每進行一次http操作,就建立一次連線,任務結束就中斷連線。

在長輪詢機制中,客戶端像傳統輪詢一樣從伺服器請求資料。然而,如果伺服器沒有可以立即返回給客戶端的資料,則不會立刻返回乙個空結果,

而是保持這個請求等待資料到來(或者恰當的超時:小於ajax的超時時間),之後將資料作為結果返回給客戶端。

長輪詢機制如下圖所示:

web客戶端**如下:

//

向後台長輪詢訊息

function

longpolling(),

timeout : 30000,//

超時時間設定30秒

error : function

(xhr, textstatus, thrownerror) ,

success :

function

(response)

longpolling();

}});

}

web伺服器端**如下:

public

class longpollingaction extends

baseaction else

}if (msg == null

) else

} catch

(exception e)

return

success;

}public

longpollingservice getlongpollingservice()

public

void

setlongpollingservice(longpollingservice longpollingservice)

}

Http短輪詢 Http長輪詢 短連線和長連線

http短輪詢指前端使用ajax定時請求後端伺服器介面,後端伺服器接收到請求後馬上響應給前端 無論是否有結果 http長輪詢指前端使用ajax請求後段伺服器介面,後端伺服器在有資料更新時 或到達超時時間 才響應給前端,否則就掛起當前請求,前端在拿到響應結果後馬上再次向服務端發起請求 短連線指的是tc...

Http 長連線 短連線 長輪詢 短輪詢

短連線 每次http請求都會建立tcp連線,管理容易 長連線 只需要建立一次tcp連線,以後http請求重複使用同乙個tcp連線,管理難 http1.1規定了預設保持長連線 http persistent connection 也有翻譯為持久連線 資料傳輸完成了保持tcp連線不斷開 不發rst包 不...

HTTP 長連線 短連線 長輪詢 短輪詢

http 1.0需要使用keep alive引數來告知伺服器端要建立乙個長連線,而http1.1預設支援長連線,http的長連線很容易在空閒後自動斷開,一般來說這個時間是300s左右。http是基於tcp ip協議的,建立乙個tcp連線是需要經過三次握手的,有一定的開銷,如果每次通訊都要重新建立連線...