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