實時同步方式

實時同步方式有如下幾種:sql

  1. 輪詢(Ajax polling/Ajax long polling)
  2. WebSocket
  3. Socket.io
  4. Wilddog(野狗)
  • WebSocket協議
    1. HTML5新增的一種協議方式
    2. 主要特色:是創建客戶端與服務端的長鏈接,從而實現實時數據傳輸
  • 其餘實現實時化的方式
    1. Ajax polling:客戶端使用Ajax每隔必定時間向服務端發起一次數據請求。實時性取決於請求的頻次,而性能也決定於請求的頻次
    2. Ajax long polling:跟Ajax polling的方式相似,不一樣之處是須要服務端keep-alive的支持。客戶端再也不定時發送數據請求,而是發送一個請求後一直等待,直到這個請求返回數據再發起下一次請求。比起polling進步的一點是能夠作到真正的實時,並且性能明顯提升,但依然不夠高
  • WebSocket的優點
    1. WebSocket的傳輸其實並不依賴於HTTP協議,且不須要重複創建TCP鏈接
    2. WebSocket只使用HTTP協議做爲握手協議,當長鏈接創建以後就不再須要傳輸龐大的HTTP頭了
    3. WebSocket協議頭基於二進制,很是小,跟HTTP協議頭相比能夠忽略不計
  • WebSocket存在的問題
    1. 瀏覽器兼容性
    2. 斷線重連,會話維持
    3. 須要寫服務端邏輯
  • Socket.io解決了WebSocket存在的問題
    1. Socket.io解決了瀏覽器兼容性問題,提供了會話層,同時有基於Node.js的服務端邏輯
  • Socket.io的缺陷
    1. 你須要關注數據發給誰
    2. 你須要關注鏈接狀態,在線與離線須要兩套不一樣的處理機制
    3. 手動處理數據權限問題,Socket.io 是無權限機制的
  • Wilddog(野狗)的實時同步機制剛好的解決了Socket.io的缺陷
    1. Wilddog的實時同步機制包含雲端的NoSql數據庫和客戶端的Nosql數據庫。
    2. 由於有數據存儲,因此不須要關注對方的鏈接狀態,只須要修改相應位置的數據就能夠,數據同步可讓應用離線可用,並且離線與在線能夠共用一套邏輯
相關文章
相關標籤/搜索