经常会有人对比HTTP和HTTPS,HTTP向HTTPS过度的主要原因可以说是信息数据化的必经过程,为了对数据进行更加精密的加密,HTTPS也日益受到用户的青睐。不难看出,HTTPS的加密机制将会成为未来电子信息化发展的主流。我们的视频监控云边端项目架构中,最先通过HTTPS实验的就是EasyNVR和EasyDSS,紧随其后的有EasyCVR、EasyGBS等。
近期我们测试EasyCVR时,发现通过https访问后台时,wss_flv格式的视频流无法播放:
排查后端代码,发现wss_flv的路由后端没有添加,所以导致https访问后台的时候,返回的websocket的flv的播放地址不能播放。
添加如下代码,在路由列表中添加wss_flv的路由地址,然后将请求地址的url解析为http的具体设备和通道的具体地址,然后代理到流媒体中去播放。
func WSFlvHandler() gin.HandlerFunc {
return func(c *gin.Context) {
//Grader.ReadBufferSize = 102400000
//Grader.WriteBufferSize = 102400000
ws, err := Grader.Upgrade(c.Writer, c.Request, nil)
if err != nil {
return
}
defer func() {
fmt.Printf("关闭长连接")
ws.Close()
}()
countSplit := strings.SplitN(c.Param("path"), "/", 3)
path := "/" + countSplit[2]
if strings.HasSuffix(path, ".flv") {
再次使用https去播放wss_flv,一切正常:
|