package server import ( "time" ) type ClientConnHandler interface { ConnectionHandler GetReconnectInterval() time.Duration GetReconnectTryTime() int } type ClientConnHandlers struct { ConnectionHandlers ReconnectInterval time.Duration ReconnectTryTime int } func (cch *ClientConnHandlers) GetReconnectInterval() time.Duration { return cch.ReconnectInterval } func (cch *ClientConnHandlers) GetReconnectTryTime() int { return cch.ReconnectTryTime } func (cch *ClientConnHandlers) Validate() error { if err := cch.ConnectionHandlers.Validate(); nil != err { return err } if cch.ReconnectInterval <= 0 { cch.ReconnectInterval = DefaultReconnectInterval } if cch.ReconnectTryTime <= 0 { cch.ReconnectTryTime = DefaultReconnectTryTime } return nil }