zoukankan      html  css  js  c++  java
  • 实时同步方式

    实时同步方式有以下几种:

    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. 因为有数据存储,所以不需要关注对方的连接状态,只需要修改相应位置的数据就可以,数据同步可以让应用离线可用,而且离线与在线可以共用一套逻辑
  • 相关阅读:
    十分钟学会Java8:lambda表达式和Stream API
    史上最全的Spring Boot Cache使用与整合
    史上最全的Spring Boot Starter开发手册
    深入理解JAVA虚拟机(内存模型+GC算法+JVM调优)
    深入理解Mybatis技术与原理
    c++入门之命名空间存在的意义
    机器学习第一篇——最近邻kNN
    Python学习第十八篇——低耦合函数设计思想
    Python学习第十六篇——异常处理
    Python学习第十五篇——类继承和类实例化
  • 原文地址:https://www.cnblogs.com/zhuotiabo/p/6268844.html
Copyright © 2011-2022 走看看