• HTML5 WebSocket


    WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议

    • 在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行全双工的数据传输
    • 现在,很多网站为了实现推送技术,所用的技术都是 Ajax 轮询,是在特定的时间间隔内(如每 1 秒),有浏览器向服务器发出 HTP 请求,然后由服务器返回最新的数据给客户端的浏览器,这种传统发的模式带来很明显的缺点,即浏览器需要不断的项度武器发出请求,然而 HTTP 请求可能包含较长的头部,其中真正的数据可能只是很小的一部分,显然这样会浪费很多的款等待资源。
    • HTML5 定义的 WebSocket 协议,能更好的节省服务器资源宽带,并且能够实时的进行通讯。

    WebSocket 的属性

    • Socket.readyState
      - 0 - 表示连接尚未建立
      - 1 - 表示连接以建立,可以进行通信
      - 2 - 表示连接正在进行关闭
      - 3 - 表示连接已经关闭或者连接不能打开
    • Socket.bufferedAmount
      - 只读属性 bufferedAmount 已被 send() 放入正在队列中等待传输,但是还没有发现的 UTF-8 文本字节数

    WebSocket 事件

    • open
      - Socket onopen
      - 连接建立时触发
    • message
      - Socket onmessage
      客户端接收服务端数据时触发
    • error
      Socket onerror
      - 通信发生错误时触发
    • close
      - Socket onclose
      - 连接关闭时触发

    WebSocket 方法

    • Socket.send()
      - 使用连接发送数据
    • Socket.close()
      - 关闭连接

    WebSocket 实例

      - WebSocket 实质上是一个基于 TCP 的协议
      - 为了建立一个Web Socket 连接,客户端浏览器首先需要向服务器发起一个 HTTP 请求,这个请求和通常的 HTTP 请求不同,包含一些附加的头信息,其中附加头信息“Upgrade: WebSocket” 表明这是一个申请协议升级的 HTTP 请求,服务器端解析这些附加的头信息然后产生应答信息返回给客户端,客户端和服务端的 WebSocket 连接就建立起来了,上方就可以通过这个连接通道自由的传送信息,并且连接会持续存在知道客户端或者服务端的某一方主动关闭连接。
  • 相关阅读:
    使用kindeditor时,取不到值
    .net Eval 绑定截取字符串
    学习GeoServer遇到的问题及答案
    爬虫用开源代理池比较
    jenkins自动化部署gitlab上maven程序
    Notepad++编辑.sh文件
    springboot的jar在linux运行
    python3安装web.py
    linux java -jar
    linux安装nginx
  • 原文地址:https://www.cnblogs.com/jcjc/p/12883276.html
Copyright © 2020-2023  润新知