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

EasyGBS發表於2020-09-28

在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在移動執法中的應用)。

 

相關文章