H.264/H.265播放器EasyPlayer.js视频流媒体播放器关于websocket1006的异常断连

EasyPlayer.js无插件H5播放器属于一款高效、精炼、稳定且免费的流媒体播放器,可支持多种流媒体协议播放,无须安装任何插件,起播快、延迟低、兼容性强,使用非常便捷。

EasyPlayer.js播放器不仅支持H.264与H.265视频编码格式,也能支持WebSocket-FLV、HTTP-FLV、HLS(m3u8)、WebRTC、ws-fmp4、http-fmp4等格式的视频流,并具备直播、点播、录像、快照截图、MP4播放、多屏播放、倍数播放、全屏播放等功能特性。

1006是websocket的一个异常码,表示连接异常断开。

1006:CLOSE_ABNORMAL,用于期望收到状态码时连接非正常关闭。

WebSocket关闭状态码1006是由于服务器在接收到客户端的连接请求后,在建立连接前发生了错误导致连接失败。

可能的原因

1、在客户端和WebSocket服务器之间的全双工连接中,有时候连接上可能没有数据流。在这个时候,网络中介可能中止连接。

就是可能会在一段时间内没有数据流,导致网络中介认为连接已经断开了。

2、也有可能是播放器端进程卡住了,导致接受推流的速度变慢,导致流媒体推流端推流到播放器变慢,甚至直接没法接收到流媒体传输过来的数据,导致网络中介认为没有流数据了,为连接已经断开了,也有可能是服务器端检测到堆积量过大,从而断开了ws连接,从而导致浏览器抛出了1006错误。

3、有可能是本地的网络带宽上限要低于流媒体服务器端推流的码率,比如流媒体服务器端推流的码率是2M,而本地的网络带宽只有1M,这样就会有1M的数据堆积没法到达播放器端,导致服务器端堆积过多就会断开连接,然后播放器抛出了1006错误。

通讯层(浏览器底层)断连了,但是应用层还是连接着,这个时候浏览器就会抛出1006错误。

4、大多情况都是因为websocket连接在nginx配置的proxy_read_timeout内没有收到数据,nginx主动发起的连接断开(不是客户端主动断开,也不是服务端主动断开的)

client->proxy->ws-server如果proxy和ws-server之间通信有问题client就会收到1006错误码。

5、网络连接问题:网络中断、防火墙设置等因素可能导致WebSocket连接异常关闭。

在播放倍率流的时候,如果服务器端是高倍率推流,比如8倍,这个时候如果电脑的性能跟不上,就会导致解封装和解码跟不上,因为js是单线程的,会导致解码和解封装的速度跟不上,导致堆积量过大,从而堵塞了接收流数据,从而触发了服务器端数据堆积过大,从而从物理层断开ws连接,从而导致浏览器抛出了1006错误。

这种情况下可以考虑检查服务器端的程序和硬件是否正常工作,查看服务器端的日志和监控数据来找出问题所在。

解决方案

需要在nginx加入一段proxy的timeout超时设置,加了500s。

播放器支持内部检测到1006错误,会内部自动重连。

EasyPlayer.js播放器项目系列已经具备Windows、Android、iOS三个平台的稳定运行版本,EasyPlayer.js无插件H5播放器还支持Linux平台,在播放器领域是多平台的最佳选择,并且EasyPlayer.js播放器系列项目底层采用了高性能的EasyRTSPClient组件,其低延时控制在行业处于领先位置。

相关推荐
Rysxt_13 分钟前
Vue 3 项目核心:App.vue 文件的作用与配置详解
前端·javascript·vue.js
imkaifan23 分钟前
10、vue3中针对图片的处理
前端·javascript·vue.js
invicinble33 分钟前
对于使用html去进行前端开发的全面认识,以及过度到vue开发
前端·javascript·vue.js
csdn_aspnet34 分钟前
C# 结合 JavaScript 实现手写板签名并上传到服务器
javascript·c#
watersink35 分钟前
Agent 设计模式
开发语言·javascript·设计模式
han_39 分钟前
前端性能优化之性能瓶颈点,Web 页面加载全流程解析
前端·javascript·性能优化
C_心欲无痕40 分钟前
vue3 - toRefs将响应式对象转换为普通对象
前端·javascript·vue.js
小oo呆41 分钟前
【自然语言处理与大模型】LangChainV1.0入门指南:AgentState介绍
前端·javascript·easyui
我是伪码农1 小时前
电子时钟案例
javascript·css·css3
weixin_462446231 小时前
Electron 禁止复制粘帖
前端·javascript·electron