zhangmeng
2019-12-05 e87bc90683436ee856c1d14ecab1f16940a20471
util/util.go
@@ -1,14 +1,25 @@
package util
import (
   "basic.com/valib/deliver.git"
   "context"
   "errors"
   "basic.com/valib/deliver.git"
   "basic.com/valib/logger.git"
)
const SHMMaxTryCount = 3
const (
   // 共享内存发送/接收失败shmMaxTryCount次重新创建通道尝试
   ShmMaxTryCount = 7
   // 不论共享内存/mangos发送/接收失败最大次数,认为当前通道不再使用, 关闭
   // 有问题,摄像机长时间断网后重连,但是通道关闭
   tooLongFailed = 300
   File_Img_Id_Pre   = "img_"
   File_Video_Id_Pre = "video_"
   File_Audio_Id_Pre = "audio_"
)
type SocketContext struct {
   Sock    deliver.Deliver
@@ -128,3 +139,23 @@
   return socket, nil
}
func MaybeRestartSocket(socket SocketContext, tryCnt *int) SocketContext {
   if socket.UseSHM {
      if *tryCnt > ShmMaxTryCount {
         logger.Info("SDK SEND SHM TRY :", ShmMaxTryCount, " RESTART IT")
         socket.Sock.Close()
         newSocket, err := NewSocketListen(socket.Mode, socket.URL, socket.UseSHM)
         if err != nil {
            return socket
         }
         *tryCnt = 0
         return newSocket
      }
   }
   return socket
}