1. 程式人生 > >長輪詢Long Polling的通俗解釋

長輪詢Long Polling的通俗解釋

“輪詢”是個耐人尋味的詞,第一次看到它的時候我就直接理解為“輪流查詢”了。但是看到了英文才知道這個是網路通訊專業的術語。輪詢,其實就是一群人在排隊買東西。polling這個詞也生動的形容了這個的狀態。就像這樣:

輪詢如果是排隊買東西,那麼長輪詢就是排隊上廁所。買東西的話,丟下錢就可以拿東西走了,但是上廁所就不一樣,有些人說不定便祕半個小時都出不來。如果只用輪詢去做Web通訊,那伺服器就鴨梨山大了,它需要一直做的接受和斷開HTTP請求的操作。就像賣熱銷產品的店員就沒有公共廁所管理員那麼輕鬆。

伺服器就是廁所,需要上廁所的就是客戶端的XHR物件。這就是長輪詢的實現原理了。現在我做了一個例子,這個例子是當伺服器上的某個檔案被修改的時候就會把那個檔案的內容輸出到客戶端,如果沒有修改就一直保持“便祕”狀態。我們先看伺服器端的程式碼:

01 <?
02 //設定當前指令碼為無超時狀態
03 set_time_limit(0);
04 //操作的檔名
05 $DATAFILE='dat.txt';
06 //儲存當前時間
07 $time=time();
08 //用死迴圈持續檢測檔案
09
while(1){
10 //判斷檔案存在
11 file_exists($DATAFILEand
12 //判斷檔案修改
13 filemtime($DATAFILE)>$time and
14 //輸出檔案內容並斷開HTTP

相關推薦

Long Polling通俗解釋

“輪詢”是個耐人尋味的詞,第一次看到它的時候我就直接理解為“輪流查詢”了。但是看到了英文才知道這個是網路通訊專業的術語。輪詢,其實就是一群人在排隊買東西。polling這個詞也生動的形容了這個的狀態。就像這樣: 輪詢如果是排隊買東西,那麼長輪詢就是排隊上

基於AJAX的(long-polling)方式實現COMET例子

什麼是 Comet? 解釋: Alex Russell ( Dojo Toolkit 的專案 Lead )稱這種基於 HTTP 長連線、無須在瀏覽器端安裝外掛的 “ 伺服器推 ” 技術為 “Comet” 。 有兩種實現 Comet 應用的實現模型,目前主要討論的是基於 AJ

Web 通訊 之 連線、long polling

基於HTTP的長連線,是一種通過長輪詢方式實現"伺服器推"的技術,它彌補了HTTP簡單的請求應答模式的不足,極大地增強了程式的實時性和互動性。 一、什麼是長連線、長輪詢? 用通俗易懂的話來說,就是客戶端不停的向伺服器傳送請求以獲取最新的資料資訊。這裡的“不停

VS 短

響應 tcp 朋友 輪詢 決定 多次 有一個 存在 新浪 創建基礎Web的實時系統時,通常會使用的到HTTP,但HTTP天生不是為實時,雙向溝通設計的。我們如何解決這個問題呢? 我們先來看一下HTTP協議: http 協議介紹: http 協議是請求/響應範式的, 每一個

優缺點分析

無法自動 頻繁 pre 安裝 定時 返回 http協議 維護 book 輪詢和長輪詢優缺點分析 輪詢:客戶端定時向服務器發送Ajax請求,服務器接到請求後馬上返回響應信息並關閉連接。 優點:後端程序編寫比較容易。 缺點:請求中有大半是無用,浪費帶寬和服務器資源。 實例:適

AC 服務 ajax 情況下 ace 定時 客戶 ebo 小型 輪詢:客戶端定時向服務器發送Ajax請求,服務器接到請求後馬上返回響應信息並關閉連接。優點:後端程序編寫比較容易。缺點:請求中有大半是無用,浪費帶寬和服務器資源。實例:適於小型應用。 長輪詢:客戶端向

java 內嵌 客戶 http協議 ash facebook book 定時 服務器 輪詢與長輪詢 輪詢:客戶端定時向服務器發送Ajax請求,服務器接到請求後馬上返回響應信息並關閉連接。優點:後端程序編寫比較容易。缺點:請求中有大半是無用,浪費帶寬和服務器資源。實例:適

與Web Socket的前端實現

ebs ole 推送 require PE sockets str 服務 port Web Socket 應用場景:實現即時通訊:如股票交易行情分析、聊天室、在線遊戲等,替代輪詢和長輪詢 輪詢 輪詢是在特定的的時間間隔(如每1秒),由瀏覽器對服務器發出HTTP r

連接、socket連接、WebSocket

解決 無法自動 客戶端瀏覽器 主動 本質 情況下 服務器維護 ica 存在 輪詢:客戶端定時向服務器發送Ajax請求,服務器接到請求後馬上返回響應信息並關閉連接。  優點:後端程序編寫比較容易。  缺點:請求中有大半是無用,浪費帶寬和服務器資源。(而每一次的 HTTP 請求

連接的區別

art 客戶端請求 一段 的區別 https 長連接 mqtt http 服務 一、http長連接 https://www.cnblogs.com/gotodsp/p/6366163.html 二、輪詢 客戶端每隔一段時間ajax https://blog.csdn.n

基於HTTP的簡單實現

Web客戶端與伺服器之間基於Ajax(http)的常用通訊方式,分為短連線與長輪詢。 短連線:客戶端和伺服器每進行一次HTTP操作,就建立一次連線,任務結束就中斷連線。 在長輪詢機制中,客戶端像傳統輪詢一樣從伺服器請求資料。然而,如果伺服器沒有可以立即返回給客戶端的資料,則不會立刻返回一個空結果, 而是保持這

tcp連線,短連線,http短

短連線和長連線: 長輪詢和短輪詢 所謂輪詢,即是在一個迴圈週期內不斷髮起請求來得到資料的機制。只要有請求的地方,都可以實現輪詢,譬如各種事件驅動模型。它的長短是在於請求的返回週期。 短輪詢 短輪詢指的是在迴圈週期內,不斷髮起請求,每一次請求都立即

通過spring提供的DeferredResult實現服務端推送訊息

DeferredResult字面意思就是推遲結果,是在servlet3.0以後引入了非同步請求之後,spring封裝了一下提供了相應的支援,也是一個很老的特性了。DeferredResult可以允許容器執行緒快速釋放以便可以接受更多的請求提升吞吐量,讓真正的業務邏輯在

連線、短連線、和WebSocket

對這四個概念不太清楚,今天專門搜尋瞭解一下,總結一下: 長連線:在HTTP 1.1,客戶端發出請求,服務端接收請求,雙方建立連線,在服務端沒有返回之前保持連線,當客戶端再發送請求時,它會使用同一個連線。這一直繼續到客戶端或伺服器端認為會話已經結束,其中一方中斷連

利用實現微信網頁版掃碼登入

掃碼登入操作過程 手機登入微信,利用“掃一掃”功能掃描網頁上的二維碼手機掃描成功後,提示“登入網頁版微信”;網頁上顯示“成功掃描 請在手機點選確認以登入”手機端點選“登入網頁版微信”,網頁跳轉到使用者的微信操作介面 整個掃碼登入的操作過程還是挺簡單的,而且互動地實時性比較

http連線、的理解

昨天翻了翻《HTTP權威指南》,看到HTTP連線管理這節,書中講到了HTTP事務,突然發現事務一詞在好多場合都用到了,事務簡單來說就是一連串的事情,要麼都做,要麼都不做,中間出了問題,整個過程都失敗,對於HTTP事務就是域名解析 --> 發起TCP的3次握手 --&g

談談HTTP協議中的短連線和短連線

---------------------  作者:左瀟龍  來源:CSDN  原文:https://blog.csdn.net/zuoxiaolong8810/article/details/65441709  版權宣告:本文為博主原創文章,轉載請附上博文連結!

和websocket

取數 rec bre 自己 udp server 查看 持久性 div 一、輪詢 在一些需要進行實時查詢的場景下應用比如投票系統:   大家一起在一個頁面上投票   在不刷新頁面的情況下,實時查看投票結果 1、後端代碼 from flask import F

websocket

輪詢   特點:每隔一段時間不短向後端傳送請求   缺點:消耗大,延遲 from flask import Flask,render_template,request,jsonify app = Flask(__name__) USERS = { 1:{"name":"Alex","c

AJAX在Nginx+Tomcat負載均衡架構上的問題

系統架構使用Nginx做Web伺服器,兩臺Tomcat做應用伺服器,業務場景是前端通過ajax輪詢請求後端獲取其他群成員的線上離線狀態,實現實時更新。部署負載均衡後,發現狀態更新總是會延遲或卡住,猜測應該是ajax請求分配到兩臺機器上造成的,目前折中的方案就是在Nginx中配