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组件,其低延时控制在行业处于领先位置。

相关推荐
杜子不疼.14 小时前
【 C++ AI 大模型接入 SDK】 - 日志模块
开发语言·javascript·c++
Dxy123931021615 小时前
如何使用jQuery获取一类元素并遍历它们
前端·javascript·jquery
likerhood15 小时前
Java 访问修饰符:public、protected、private讲解
java·开发语言·javascript
刀法如飞15 小时前
JavaScript 数组去重的 20 种实现方式,学会用不同思路解决问题
前端·javascript·算法
__log16 小时前
Vue 3 核心技术深度解析:从“会用API“到“懂原理、能表达“
前端·javascript·vue.js
ZC跨境爬虫17 小时前
跟着 MDN 学 HTML day_52:(深入 XPathExpression 接口)
开发语言·前端·javascript·ui·html·音视频
不会写DN17 小时前
通过白名单解决 pnpm i 报错 Ignored build scripts
javascript·面试·npm
布局呆星18 小时前
Vue Router 笔记(二):正则路由、组件通信与动态路由
前端·javascript·vue.js
rising start19 小时前
InsightEdu - 轻量智能学习平台
javascript·axios·css3·html5·fastapi·orm·dify
qq_3813385019 小时前
前端虚拟列表与无限滚动性能优化实战:从万级数据到丝滑体验
前端·javascript·html·优化