• TSINGSEE青犀视频开发低延迟直播系统webrtc-client获取视频流出现webscocket连接状态错误优化


    本文还是和大家分享下我们的WebRTC开发,之前也讲了TSINGSEE青犀视频开发的webrtc-client软件已经初具模型,目前要做的是推流测试和细节优化,优化完成后将会和上线提供给大家测试使用。

     

    在webrtc-client的开发中,我们发现获取视频流出现webscocket连接状态错误,websocket初始化后,发送send函数时报错:
    “Uncaught DOMException: Failed to execute ‘send’ on ‘WebSocket’: Still in CONNECTING state.”

    查阅MDN(https://developer.mozilla.org/zh-CN/docs/Web/API/WebSocket)资料发现,webscoket连接标志有四个值,分别对应不同的状态,如下:

    • WebSocket.CONNECTING:值为0,表示正在连接;
    • WebSocket.OPEN:值为1,表示连接成功,可以通信了;
    • WebSocket.CLOSING:值为2,表示连接正在关闭;
    • WebSocket.CLOSED:值为3,表示连接已经关闭,或者打开连接失败。

    了解了WebSocket四个标志的值,我们就知道问题产生的原因是WebSocket处在正在连接的状态(CONNECTING),其实还没有连接成功,又调用了websocket.send函数,因此发送的字符串未发送出去,所以出现了此错误。

    websocket有open、close、message、error监听函数。所以只需要在websocket open函数里面执行send方法,这样此问题就得以解决。

    	let ws = new WebSocket(“wss://xxxxxxxxx”);
    	ws.onopen = () => {
    			ws.send(“send string”);
    	}
    

    关于WebRTC的开发,我们后续还会不定期更新,大家可以关注我们获取最新功能的上线,如果大家还想了解更多关于TSINGSEE青犀视频开发平台的相关知识,欢迎联系我们。

  • 相关阅读:
    「学习笔记」min_25筛
    HNOI2019游记
    【SDOI2017】数字表格
    【APIO2016】烟火表演
    【SCOI2015】小凸想跑步
    java Thread源码分析
    java ThreadGroup源码分析
    bean获取Spring容器
    spring 管理bean
    thinkphp5.0.19 request
  • 原文地址:https://www.cnblogs.com/TSINGSEE/p/14378410.html
Copyright © 2020-2023  润新知