• WebSocket


    Web Socket是与服务器的双全工、双向通信渠道
    Web Socket使用了自定义协议。
    自定义协议的好处:客户端和服务端可以发送非常小的数据,不会对HTTP造成任何负担,使用更小的数据包让Web Socket非常适合带宽和延迟问题比较严重的移动应用
    自定义协议缺点:定协议的事件比 JavaScript API要长

    我们需要服务器主动发送信息到客户端的需求,我们可以轮询的方式或Web Socket实现

    使用WebSocket

    1.实例化一个Websocket对象

    var ws = new webSocket('ws://127.0.0.1:8000)
    
    • 1

    Web Socket URL 使用 ws://wss:// 后者是安全连接
    浏览器会在初始化 WebSocket 对象立即创建连接
    2. webSocket.readState
    readState属性返回实例的当前状态,共有四种

    WebSocket.OPENING  //0  连接正在建立
    WebSocket.OPEN  //1  连接已经建立
    WebSocket.CLOSING  //2 连接正在关闭
    WebSocket.CLOSE  //3  连接已经关闭
    
    • 1
    • 2
    • 3
    • 4

    3.3个回调函数
    WebSocket.onpen
    onpen属性,用于指定连接成功后的回调函数

    ws.onopen = function(){
        alert('连接成功')
    }
    
    • 1
    • 2
    • 3

    WebSocket.onerror
    onerror属性,连接发生错误的回调方法

    ws.onerror = function(){
      alert('连接失败')
     }
    
    • 1
    • 2
    • 3

    WebSocket.onclose
    onclose属性,连接关闭的回调方法

    ws.onclose = function(){
      alert('连接失败')
     }
    
    • 1
    • 2
    • 3

    4. WebSocket.onmessage
    实例对象的onmessage属性,用于指定接收服务器数据后的回调函数

    ws.onmessage = function(data){
        console.log('服务端返回的消息 数据')
        // JSON.parse()
        // 对数据进行某些操作
    }   
    
    • 1
    • 2
    • 3
    • 4
    • 5

    4. WebSocket.send()
    实例对象的send()方法,用于向服务器发送数据

    // 判断状态 连接成功发送数据
       if(ws.readyState == WebSocket.OPEN){
       let data = {}
           ws.send(data)
       }
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    IEEE投稿模板下载
    Github Action Flask 应用CI/CD样例
    C#调用python脚本教程使用pythonnet方式
    Centos系统安装Yapi(传统方式安装)
    react路由拦截(路由守卫)
    MySQL最新版8.1.0安装配置教程
    Android WebRTC 入门教程(二) -- 模拟p2p本地视频传输
    DP1332E高度集成的非接触读写芯片13.56MHz
    匿名函数lambda
    分布式合集
  • 原文地址:https://blog.csdn.net/qq_38367703/article/details/126714628