反向Ajax之Socket.io

來源:互聯網
上載者:User

標籤:

1.什麼是反向ajax?

  傳統的ajax的困惑?

  新需求--當伺服器端資料發生變化時,用戶端(瀏覽器端)如何即時得到通知呢?

    找一些實際的案例:客服系統、線上聊天

    這類應用,有一個顯著的特點

         資料並不是單向的,原來的資料,都是從瀏覽器端向伺服器端發起請求,然後擷取資料。

          現在的需求發生變化了,有時候,資料是從伺服器端 推送 到瀏覽器端

                                     

     前面所有的http請求/響應模型都是基於單向的,包括ajax。

     從服務端向瀏覽器端推送資料的這種ajax應用,稱之為反向ajax。

 

2.常見解決方案

  有以下三種:

                              *l HTTP輪詢

                             *l Comet (長輪詢/iframe)

                             *l websockets

                輪詢的優缺點

                            優點:就是實現起來比較簡單

                           缺點:有大量的無用的請求,造成效能的損失,包括頻寬的浪費。由於是有固定的時間間隔,所以造成即時性不夠

       不管是輪詢還是Comet,都不是最好的解決方案

       最好的解決方案是web socket。

 

           WebSockets是HTML5的一種新通訊協定,它實現了瀏覽器與伺服器之間的雙向通訊。有了websocket,我們就可以實現互發。

 

            Websockets只是一個協議,我們需要去實現這些協議。目前有很多好的方案,最好的就是socket.io。

 

3.Socket.io

             Socket.io是一個完全由JavaScript實現、基於Node.js、支援WebSocket的協議用於即時通訊、跨平台的開源架構,它包括了用戶端的JavaScript       和伺服器端的Node.js。

     由於是雙向通訊,可以在瀏覽器端向伺服器端發送請求,也可以從伺服器端向瀏覽器端發送請求。包括兩個部分,用戶端有一個socket.io相關的對象,同理,   在伺服器端也有一個socket.io相關的對象。

            Socket.io設計的目標是構建能夠在不同瀏覽器和行動裝置上良好啟動並執行即時應用,如即時分析系統、二進位流資料處理應用、線上聊天室、線上客服系統、評   論系統、WebIM等。

 

4.Socket.io基本使用

 

   可以參考官網:http://socket.io/docs/

   注意:

          l 要以伺服器的方式來訪問用戶端頁面

          l 引入外部js之後,需要對外部靜態資源的解析

 

反向Ajax之Socket.io

聯繫我們

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