基於netty-socketio的web推送服務

來源:互聯網
上載者:User

標籤:發送   更新   推送服務   問題   web項目   訊息   lin   大量   客戶   

  在WEB項目中,伺服器向WEB頁面推送訊息是一種常見的業務需求。PC端的推送技術可以使用socket建立一個長串連來實現。傳統的web服務都是用戶端發出請求,服務端給出響應。但是現在直觀的要求是允許特定時間內在沒有用戶端發起請求的情況下服務端主動推送訊息到用戶端。最近的預警系統中,需要服務端向預警系統推送商品行情和K線相關的資料,所以對常用的WEB端推送方式進行調研。常見的手段主要包括以下幾種:

  • 輪詢(俗稱“拉”,polling):Ajax 隔一段時間向伺服器發送請求,詢問資料是否發生改變,從而進行增量式的更新。輪詢的時間間隔成了一個問題:間隔太短,會有大量的請求發送到伺服器,會對伺服器負載造成影響;間隔太長業務資料的即時性得不到保證。連。使用輪詢的優點是實現邏輯簡單,缺點是無效請求的數量多,在使用者量較大的情況下,伺服器負載較高。因此輪詢的方式通常在並發數量較少、並且對訊息即時性要求不高的情況下使用。
  • 長輪詢技術(long-polling):用戶端向伺服器發送Ajax請求,伺服器接到請求後hold住串連,直到有新訊息或逾時(設定)才返迴響應資訊並關閉串連,用戶端處理完響應資訊後再向伺服器發送新的請求。長輪詢技術的優點是訊息即時性高,無訊息的情況下不會進行頻繁的請求;缺點是服務端維持和用戶端的串連會消耗掉一部分資源。
  • 外掛程式提供socket方式:比如利用Flash XMLSocket,Java Applet套介面,Activex封裝的socket。優點是對原生socket的支援,和PC端和移動端的實現方式相似;缺點是瀏覽器需要安裝相應的外掛程式。
  • WebSocket:是HTML5開始提供的一種瀏覽器與伺服器間進行全雙工系統通訊的網路技術。其優點是更好的節省伺服器資源和頻寬並達到即時通訊;缺點是目前還未普及,瀏覽器支援不好;

  綜上,考慮到瀏覽器安全色性和效能問題,採用長輪詢(long-polling)是一種比較好的方式。netty-socketio是一個開源的Socket.io伺服器端的一個java的實現, 它基於Netty架構。 項目地址為: https://github.com/mrniko/netty-socketio

 

基於netty-socketio的web推送服務

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.