HTML5API(4)

十三、服务器推送

  • 服务器主动向客户端推送信息
  • 传统的HTTP协议传输,服务器是被动相应客户端的请求

1、解决方案

  • ajax轮询、ajax长轮询
  • Server-Send-Event
  • WebSocket

2、ajax轮询

  • 客户端定时向服务器发送请求
  • 可能会造成无用的http请求

3、ajax长轮询

  • 客户端向服务器发送请求,服务器等到有更新后给出相应。客户端收到更新后在发起新的请求
  • 每个请求都有更新结构,没有无用的http请求
  • 仍然产生了大量的http链接

十四、Server-Send Event

1、概述

  • 基于HTTP协议
  • H5新增的API标准

2、客户端EventSource

  • 事件
  • onpen
  • onmessage
  • onerror
  • 方法
  • close()
  • 属性
  • readyState
  • url

3、服务端

  • 设置响应头

      Content-type:text/event-stream
      Cache-Control:no-cache
      Connection:keep-alive   
    
  • 内容格式(以 结束, 消息结束符)

     	data:内容
    
     	data:内容
    
    
    
  • 字段

  • data

  • event

  • id

  • retry


十五、WebSocket

1、概述

  • 真正的实时通信
  • 双工通信
  • socket协议直接建立在TCP协议上
  • 不存在同源策略

2、客户端WebSocket

  • 方法
  • send()
  • close()
  • 事件
  • onmessage
  • onopen
  • onerror

3、node.js使用socket模块

  • node-websocket
  • socket.io
  • ws
原文地址:https://www.cnblogs.com/DCL1314/p/7840538.html