当网络环境复杂需要进行互联网直播时,首先需要解决网络问题。此时TSINGSEE青犀视频会推荐大家使用EasyNTS进行网络穿透来实现视频监控组网。最近TSINGSEE青犀视频的研发人员在官网测试EasyNTS,发现EasyNTS服务端显示设备上线后,过一段时间就会显示离线,再之后就重连不上了,只能重新启动设备进行重连。
这个原因可能跟我们EasyNTS服务端的设备检测机制有关系,EasyNTS在检测设备有效性时候,如果设备的状态为不在线,就发送mqtt协议让设备下线,导致不能再次重连。
随后我们在代码中将mqtt协议给去掉,这样的话在判断设备状态的时候,不会发送让设备下线的通知。
代码语言:javascript复制//CheckDevice 校验设备有效性
func CheckDeviceOnline(ntc *emsg.EasyNTC) bool {
//判断设备是否有效
device := &do.TDeviceData{}
dao.DB().Where(consts.SqlWhereDeviceID, ntc.DeviceID).Where(consts.SqlWhereState, 1).First(device)
if device.ID != consts.EmptyString {
if !security.CheckSign(ntc.Sign, ntc.Timestamp, ntc.Noncestr, ntc.DeviceID) {
elog.DebugInfo("Illegal request error sign", ntc)
return false
}
return true
}
return false
}
修改之后我们再运行EasyNTS硬件设备,则不会再显示下线。
关于EasyNTS
EasyNTS上云网关的网络穿透采用的是服务转发方式的穿透, 穿透率100%,这种功能即为上云网关。采用MQTT加密协议,具有运算速度快,安全性高,资源损耗低的优势,网点间支持多种传输:点对点、自动转发、强制转发。