zoukankan      html  css  js  c++  java
  • RTSP协议视频平台EasyNVR接入EasyNVS通道不显示任何数据怎么处理?

    EasyNVS云管理平台是新一代基于创新的超融合和技术构建,具备完整的视频流媒体服务能力和运维管理服务能力的云架构平台,可将多套EasyNVR设备统一接口进行登记和管理。

    EasyNVS通道列表不显示数据

    正常情况下,接入EasyNVS的设备通道都会显示在如下的通道列表当中,但是此处我们查看通道列表,却并没有显示通道数据。

    分析问题:

    1、先查看是否是前端报错,导致渲染数据出错。

    通过浏览器查看,很明显不是前端报错,是后端返回的数据是0条。

    2、下面来分析后端代码,正常返回数据的代码如下:

    func (h *APIHandler) GetChannelsConfig(c *gin.Context) {
    	params := make(map[string]string)
    	for k, v := range c.Request.URL.Query() {
    		params[strings.ToLower(k)] = strings.Join(v, ",")
    	}
    
    	cc := uint(license.ChannelCount)
    	form := utils.NewPageForm()
    	if err := c.Bind(form); err != nil {
    		return
    	}
    	if id, ok := params["id"]; ok {
    		if _, err := strconv.Atoi(id); err == nil {
    			form.Q = id
    		}
    	}
    	if channel, ok := params["channel"]; ok {
    		if _, err := strconv.Atoi(channel); err == nil {
    			form.Q = channel
    		}
    	}
    	ack := NewMsgAck()
    	ack.EasyDarwin.Header.MessageType = MSG_SC_SERVER_GET_CHANNELS_CONFIG_ACK
    	cameras := make([]*models.Camera, 0)
    	db := models.DB.Table("camera").Order("id").Where("id <= ?", cc)
    	if form.Q != "" {
    		ch, _ := strconv.Atoi(form.Q)
    		if ch > 0 {
    			db = db.Where("id = ?", ch)
    		} else {
    			db = db.Where("name like ?", "%"+form.Q+"%")
    
    

    而这个后端也没有报错,代码是正常执行的。

    3、继续分析,查看代码执行流程,

    发现是因为EasyNVR新版本添加了用户权限,所以导致返回到前端的数据是空的。

    解决问题

    通过这行代码获取token,后续刷新token也是通过此处代码。

    在登录接口处发现EasyNVS和EasyNVR交互的的方式通过username

    至此,EasyNVR配置EasyNVS后,可以在EasyNVS上看到通道列表了。

  • 相关阅读:
    制衡技术的新蓝海
    制衡技术,从Adblock所想到的
    centos6中安装新版 Elasticsearch 7.x
    nrm 安装与npm镜像切换
    james2.3 配置收件 之 MariaDB数据库配置
    手动搭建apache james邮件服务器,实现邮件功能
    James 如何作为服务在后台启动
    安装最新版RabbitMQ v3.7.13 以及基本配置
    mac 下 通过 brew 安装 MariaDB
    Mac 上安装maven
  • 原文地址:https://www.cnblogs.com/EasyNVR/p/13450977.html
Copyright © 2011-2022 走看看