package client import ( "net/http" "time" cwf "git.loafle.net/commons_go/websocket_fasthttp" ) type SocketHandlers struct { // MaxMessageSize is the maximum size for a message read from the peer. If a // message exceeds the limit, the connection sends a close frame to the peer // and returns ErrReadLimit to the application. MaxMessageSize int64 // WriteTimeout is the write deadline on the underlying network // connection. After a write has timed out, the websocket state is corrupt and // all future writes will return an error. A zero value for t means writes will // not time out. WriteTimeout time.Duration // ReadTimeout is the read deadline on the underlying network connection. // After a read has timed out, the websocket connection state is corrupt and // all future reads will return an error. A zero value for t means reads will // not time out. ReadTimeout time.Duration PongTimeout time.Duration PingTimeout time.Duration PingPeriod time.Duration } func (sh *SocketHandlers) OnConnect(socketContext SocketContext, res *http.Response) { // no op } func (sh *SocketHandlers) OnDisconnect(soc Socket) { // no op } func (sh *SocketHandlers) GetMaxMessageSize() int64 { return sh.MaxMessageSize } func (sh *SocketHandlers) GetWriteTimeout() time.Duration { return sh.WriteTimeout } func (sh *SocketHandlers) GetReadTimeout() time.Duration { return sh.ReadTimeout } func (sh *SocketHandlers) GetPongTimeout() time.Duration { return sh.PongTimeout } func (sh *SocketHandlers) GetPingTimeout() time.Duration { return sh.PingTimeout } func (sh *SocketHandlers) GetPingPeriod() time.Duration { return sh.PingPeriod } func (sh *SocketHandlers) Validate() { if sh.MaxMessageSize <= 0 { sh.MaxMessageSize = cwf.DefaultMaxMessageSize } if sh.WriteTimeout <= 0 { sh.WriteTimeout = cwf.DefaultWriteTimeout } if sh.ReadTimeout <= 0 { sh.ReadTimeout = cwf.DefaultReadTimeout } if sh.PongTimeout <= 0 { sh.PongTimeout = cwf.DefaultPongTimeout } if sh.PingTimeout <= 0 { sh.PingTimeout = cwf.DefaultPingTimeout } if sh.PingPeriod <= 0 { sh.PingPeriod = cwf.DefaultPingPeriod } } func NewSocketHandler() SocketHandler { return &SocketHandlers{} }