• 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青犀视频开发平台的相关知识,欢迎联系我们。

  • 相关阅读:
    命令行通配符教程
    无插件Vim配置文件vimrc推荐与各VIM配置项解释
    jquery.pagination.js分页插件的使用
    Alpha(4/10)
    Alpha(3/10)
    Alpha(2/10)
    Alpha(1/10)
    需求报告答辩
    项目UML设计
    项目选题报告答辩总结
  • 原文地址:https://www.cnblogs.com/TSINGSEE/p/14378410.html
Copyright © 2020-2023  润新知