淺析輪詢(Polling)和推送(Long-Polling)服務

來源:互聯網
上載者:User
輪詢(Polling)是指不管伺服器端有沒有更新,用戶端(通常是指瀏覽器)都定時的發送請求進行查詢,輪詢的結果可能是伺服器端有新的更新過來,也可能什麼也沒有,只是返回個空的資訊。不管結果如何,用戶端處理完後到下一個定時時間點將繼續下一輪的輪詢。 推送或叫長串連(Long-Polling)的服務其用戶端是不做輪詢的,用戶端在發起一次請求後立即掛起,一直到伺服器端有更新的時候,伺服器才會主動推送資訊到用戶端。 在伺服器端有更新並推送資訊過來之前這個周期內,用戶端不會有新的多餘的請求發生,伺服器端對此用戶端也啥都不用幹,只保留最基本的串連資訊,一旦伺服器有更新將推送給用戶端,用戶端將相應的做出處理,處理完後再重新發起下一輪請求。

舉個例子說明下就很清楚了: 輪詢模式,假設是用戶端每2秒輪詢一次,那麼用戶端每2秒就會發送一次請求,相應的伺服器端每2秒就要響應這個用戶端的一次請求。而實際上伺服器端可能1秒鐘後就有更新,也可能1分鐘後才有更新。對於1秒鐘就有更新的,用戶端至少會有1秒鐘的延時;而1分鐘後才有更新的,只有最後一次查詢有意義,這一分鐘內的輪詢其實都是沒有必要的,伺服器端和用戶端均有資源的浪費。 推送模式,用戶端發送一次請求後馬上掛起等待伺服器端響應,可能1秒,也可能10秒鐘,也可能1分鐘。如果伺服器端是1秒就有更新,那麼到1秒鐘時用戶端馬上就收到更新了,如果是1分鐘才有更新,那麼整個一分鐘用戶端也只請求一次,伺服器也只會相應一次,這個跟輪詢的區別是不是已經很清楚了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.