國標GB28181協定國標視訊平臺國標串流媒體伺服器EasyGBS向上級聯多個平臺裝置及通道選擇錯位問題解析

2020-09-29 22:00:16

在EasyGBS的平臺級聯功能測試中,我們發現一個問題,就是當EasyGBS向多個上級平臺級聯的時候,會出現選擇前後一個平臺的通道,影響到前一個平臺的裝置選擇的情況。

99.png

 

100.png

經過排查分析,發現是在級聯選擇通道的時候,沒有指定級聯資訊的id。

else if opt == "del" {
		for i, v := range ids {
			ids := strings.Split(v, ",")
			if len(ids) != 2 {
				break
			}
			if i == 0 {
				sql = fmt.Sprintf(`(channel_id = '%s' and device_id = '%s' )`, ids[0], ids[1])
			} else {
				sql = fmt.Sprintf(` %s or (channel_id = '%s' and device_id = '%s')`, sql, ids[0], ids[1])
			}
		}
		if len(ids) > 0 {
			if err := db.SQLite.Delete(models.CascadeChannel{}, sql).Error; err != nil {
				c.AbortWithStatusJSON(400, err.Error())
				return
			}
		}

	}

需要新增以下程式碼

for i, v := range ids {
			ids := strings.Split(v, ",")
			if len(ids) != 2 {
				break
			}
			if i == 0 {
				sql = fmt.Sprintf(`(channel_id = '%s' and device_id = '%s' and cascade_id = '%d')`, ids[0], ids[1], cascade_id)
			} else {
				sql = fmt.Sprintf(` %s or (channel_id = '%s' and device_id = '%s' and cascade_id = '%d')`, sql, ids[0], ids[1], cascade_id)
			}
		}
		if len(ids) > 0 {
			if err := db.SQLite.Delete(models.CascadeChannel{}, sql).Error; err != nil {
				c.AbortWithStatusJSON(400, err.Error())
				return
			}
		}


前端修改後一切正常,也不會影響到別的級聯資訊。

101.png

TSINGSEE青犀視訊團隊曾經介紹過不少平臺對接EasyGBS的方法,比如:EasyGBS使用者端作為上級平臺如何跟下級海康8700平臺對接EasyGBS如何對接英飛拓視訊服務平臺國標串流媒體伺服器對接中興力維平臺。大家可以瞭解一下。

目前我們也已經推出國標GB28181視訊平臺EasyGBS推流軟體EasyGBD,在使用手機等移動裝置進行執法或者戶外監控的時候,能夠實現戶外移動監控的網頁無外掛直播(EasyGBD在移動執法中的應用)。