zoukankan      html  css  js  c++  java
  • 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 连接就建立起来了,上方就可以通过这个连接通道自由的传送信息,并且连接会持续存在知道客户端或者服务端的某一方主动关闭连接。
  • 相关阅读:
    POJ2778 DNA Sequence AC自动机上dp
    codeforces732F Tourist Reform 边双联通分量
    codeforces786B Legacy 线段树优化建图
    洛谷P3588 PUS 线段树优化建图
    codeforces1301D Time to Run 模拟
    codeforces1303B National Project 二分或直接计算
    codeforces1303C Perfect Keyboard 模拟或判断欧拉路
    codeforces1303D Fill The Bag 二进制应用+贪心
    python之路——使用python操作mysql数据库
    python之路——mysql索引原理
  • 原文地址:https://www.cnblogs.com/jcjc/p/12883276.html
Copyright © 2011-2022 走看看