使用uc浏览器发现访问yy直播页面,有一定概率点击视频播放按钮不生效,静置一段时间,点击视频可播放。
验证过程中,发现在chrome 和qq 浏览器上也会出现这个问题。
分析发现,视频点击不生效时,有个websocket 请求一直处于pedding状态;而视频可点击时,websocket处于正常状态。
使用chrome调试发现,在出现异常时,console上的log也被阻塞。搜索log关键字,发现在svc_tunnel.js中,页面js执行 new WebSocket()后没有收到返回值,js被阻塞。
怀疑是服务器不稳定导致swebocket连接建立耗时很久,简化页面和svc_tunnel.js 代码,只向服务器发起websocket请求,并在触发onopen事件时打印log。
多次刷新页面,发现有一定的概率出现没有log,即websocket没有即时建立好连接