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上看到通道列表了。

  • 相关阅读:
    with check option(视图 )
    @@ERROR
    事务处理
    含有自增序列的表中使用truncate与delete的不同结果
    Oracle中的通配符
    Java方法重载
    java递归方法
    Oracle中的for语句
    Uboot 2014.07 makefile分析
    linux内核目录结构
  • 原文地址:https://www.cnblogs.com/EasyNVR/p/13450977.html
Copyright © 2011-2022 走看看