国标GB28181协议视频平台EasyGBS授权不限通道的情况下无法接入新通道,如何排查?

针对EasyNVR、EasyGBS等视频平台授权问题,介绍了无限通道数授权情况下的代码处理方法,并分享了授权过程中遇到的问题及解决方案。

TSINGSEE青犀视频云边端架构产品EasyNVR、EasyGBS等都是需要授权的,授权分为加密机、加密狗、授权码三种,不了解的朋友可以阅读加密机如何成功授权了解一下。

EasyNVR、EasyGBS等视频平台都是按通道进行授权的,可以有固定的通道数量或者不限通道数量两种。一般前端摄像头通道数固定则可以授权固定的通道,而接入设备要不断增加或者数量庞大,即可授权不限通道。

前段时间有项目团队获得了不限通道的授权,运行后授权显示授权剩余天数和无限制的通道数,但是添加通道时却报“已使用通道数超过授权通道数目”的错误。

30.png

31.png

经过排查代码发现,当授权是9999无限制通道,但是授权天数却不是永久的,这时我们的代码中并没有做无限制处理。

if license.ChannelCount == 0 && license.RemainDays() == 9999 {
			//通道时间都无限制
			c.Next()
		} else {
			if len(deviceID) < 20 && len(channelID) < 20 && channelStr == "" {
				total := 0
				// 修改通道数统计方式 [Dingshuai 2020/04/02]
				//db.SQLite.Model(models.Channel{}).Count(&total)
				db.SQLite.Model(models.Channel{}).Where("sub_count=0 and status='ON'").Count(&total)

				if total > license.ChannelCount {

					c.AbortWithStatusJSON(http.StatusForbidden, "已使用通道数超过授权通道数目!")
					//License Channel Count Overload
					return
				}
				c.Next()

因此我们在此处可以加上对授权天数和通道数都不限制的代码,参考如下:

if license.ChannelCount == 0 && license.RemainDays() == 9999 {
			//通道时间都无限制
			c.Next()
		} else if license.ChannelCount == 9999 && license.RemainDays() > 0 {
			//通道无限制
			c.Next()
		}

再次添加通道并且播放时,则显示一切正常:

32.png

今年,TSINGSEE青犀视频研发团队对云边端架构产品做了很多升级,具体则体现在界面和功能上,如果大家对新功能有兴趣,可以联系我们获取测试账号进行测试,TSINGSEE青犀视频平台均提供了试用版本及丰富的二次开发接口,欢迎大家了解咨询。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值