zoukankan      html  css  js  c++  java
  • RTMP协议视频直播/点播平台EasyDSS统计流量时报panic: runtime error: slice bounds out of range错误解析方案

    为了便于用户对RTMP协议视频平台EasyDSS总体运行情况的把握和了解,减轻运维人员日常的统计工作,我们对EasyDSS设置了首页界面统计功能。在EasyDSS的首页,可以看到服务器CPU及存储的使用空间,通过接口调用,可以随意展示几个使用界面。

    视频直播/点播平台EasyDSS统计流量时,出现panic: runtime error: slice bounds out of range [:-3]报错。

    在EasyDSS统计流量的时候,首先代码层会通过正则表达式去匹配对应的url地址,如果匹配的结果为空的字符串就会导致切片越界的现象。

    我们的处理方法就是将匹配为空字符串结果先进行判空验证,如果是空字符串就返回不继续执行下去。

    regNum, _ := regexp.Compile(`d+.ts`)
    regNumStr := regNum.FindString(path)
    if regNumStr == consts.EmptyString {
       log.Println("统计流量地址正则失败")
       return
    }
    num, _ := strconv.Atoi(regNumStr[:len(regNumStr)-3])
    preTag := strings.Replace(path, regNumStr, consts.EmptyString, 1)
    currentTag := fmt.Sprintf(`%s-%s-%v`, uType, uID, num)
    futureTag := fmt.Sprintf(`%s-%s-%v`, uType, uID, num+2) //向后漂移2个ts进行统计
    

    没有空字符串的返回,也就不再存在以上的报错内容了。

    EasyDSS目前在TSINGSEE青犀视频研发团队一再的测试、修复下越来越成熟,各项功能也越来越实用、便捷,在H265火爆视频行业的今天,EasyDSS也是处于领先地位,支持H265编码视频的播放和存储。如果大家对EasyDSS功能感兴趣,欢迎联系我们了解。

  • 相关阅读:
    C#、Java实现按字节截取字符串包含中文汉字和英文字符数字标点符号等
    百度编辑器(UEditor)自定义工具栏
    ASP.NET使用百度编辑器(UEditor)使用方法
    C#设计模式--桥接模式
    C#设计模式--外观模式
    Entity Framework6测试使用
    Entity Framework6的在线下载安装
    C#设计模式--代理模式
    php 回调函数结合闭包(匿名函数)的使用示例
    函数的可变参数实例
  • 原文地址:https://www.cnblogs.com/easydss/p/13826104.html
Copyright © 2011-2022 走看看