国标GB28181协议视频平台EasyGBS授权不限通道的情况下无法接入新通道如何排查?
TSINGSEE青犀视频云边端架构产品EasyNVR、EasyGBS等都是需要授权的,授权分为加密机、加密狗、授权码三种,不了解的朋友可以阅读加密机如何成功授权了解一下。
EasyNVR、EasyGBS等视频平台都是按通道进行授权的,可以有固定的通道数量或者不限通道数量两种。一般前端摄像头通道数固定则可以授权固定的通道,而接入设备要不断增加或者数量庞大,即可授权不限通道。
前段时间有项目团队获得了不限通道的授权,运行后授权显示授权剩余天数和无限制的通道数,但是添加通道时却报“已使用通道数超过授权通道数目”的错误。
经过排查代码发现,当授权是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()
}
再次添加通道并且播放时,则显示一切正常:
今年,TSINGSEE青犀视频研发团队对云边端架构产品做了很多升级,具体则体现在界面和功能上,如果大家对新功能有兴趣,可以联系我们获取测试账号进行测试,TSINGSEE青犀视频平台均提供了试用版本及丰富的二次开发接口,欢迎大家了解咨询。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结