大家知道TSINGSEE青犀视频全线产品都是有演示平台的,用户可以在演示平台浏览熟悉之后,再选择合适的视频平台进行下载试用,比如我们的EasyGBS就有部署在公网的演示平台。
然而将EasyGBS部署在公网时,游客将会到平台进行视频播放,此时公网资源会被消耗,当播放一直在进行时,公网的流量会一直消耗,导致严重的资源浪费。
为了减少这种情况下的资源浪费,我们的研发人员决定在此处进行优化,即在演示模式下限制用户的登录播放使用时间。
在用户登录成功之后,将用户信息存在Cookie中,然后根据配置信息去判断当前系统是不是演示模式,并且根据登录的用户是否是游客用户来设置Cookie的有效时间。
sess := sessions.Default(c) sess.Set("uid", user.ID) sess.Set("uname", user.Username) if demo && form.Username == "guest2020" { sess.SetMaxAge(1) }
实现效果:登录超时之后会将用户信息置空,这样获取不到用户信息,就会自动跳转到登录界面了
if uid != nil { c.IndentedJSON(http.StatusOK, gin.H{ "ID": uid, "Name": sess.Get("uname"), "RoleName": userrolename.RoleName, "NickName": userrolename.NickName, }) } else { c.IndentedJSON(http.StatusOK, nil) }
如此优化之后,在一定程度上减轻了服务器带宽的压力,减少了对服务器资源的消耗。
EasyGBS作为国标GB28181协议接入平台,能够将GB28181设备/平台推送的PS流转成ES流,然后提供RTSP、RTMP、FLV、HLS多种格式进行分发,从而实现视频监控平台的建立。