deprecated_overflow_gateway.../socket_handlers.go

91 lines
2.1 KiB
Go
Raw Normal View History

2017-08-25 02:33:00 +00:00
package overflow_gateway_websocket
2017-08-24 10:42:40 +00:00
2017-08-24 11:29:22 +00:00
import (
2017-08-25 05:40:04 +00:00
"log"
2017-08-24 11:29:22 +00:00
"time"
)
const (
// DefaultWriteTimeout is default value of Write Timeout
DefaultWriteTimeout = 0
// DefaultReadTimeout is default value of Read Timeout
DefaultReadTimeout = 0
// DefaultPongTimeout is default value of Pong Timeout
DefaultPongTimeout = 60 * time.Second
// DefaultPingTimeout is default value of Ping Timeout
DefaultPingTimeout = 10 * time.Second
// DefaultPingPeriod is default value of Ping Period
DefaultPingPeriod = (DefaultPongTimeout * 9) / 10
// DefaultMaxMessageSize is default value of Max Message Size
DefaultMaxMessageSize = 1024
)
2017-08-24 10:42:40 +00:00
2017-08-25 08:13:21 +00:00
// SocketOptions is configuration of the websocket server
2017-08-31 10:08:14 +00:00
type SocketHandlers struct {
onDisconnected func(soc Socket)
2017-08-25 05:40:04 +00:00
2017-08-31 10:33:40 +00:00
Protocol ProtocolHandler
2017-08-24 10:42:40 +00:00
2017-08-25 02:33:00 +00:00
MaxMessageSize int64
WriteTimeout time.Duration
ReadTimeout time.Duration
PongTimeout time.Duration
PingTimeout time.Duration
PingPeriod time.Duration
BinaryMessage bool
2017-08-24 10:42:40 +00:00
}
2017-08-31 10:08:14 +00:00
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) IsBinaryMessage() bool {
return sh.BinaryMessage
}
2017-08-31 10:33:40 +00:00
func (sh *SocketHandlers) GetProtocol() ProtocolHandler {
return sh.Protocol
2017-08-31 10:08:14 +00:00
}
2017-08-24 10:42:40 +00:00
// Validate validates the configuration
2017-08-31 10:33:40 +00:00
func (sh *SocketHandlers) Validate() {
if nil == sh.Protocol {
log.Fatalln("Protocol must be specified.")
2017-08-25 05:40:04 +00:00
}
2017-08-31 10:33:40 +00:00
if sh.WriteTimeout < 0 {
sh.WriteTimeout = DefaultWriteTimeout
2017-08-24 11:29:22 +00:00
}
2017-08-31 10:33:40 +00:00
if sh.ReadTimeout < 0 {
sh.ReadTimeout = DefaultReadTimeout
2017-08-24 11:29:22 +00:00
}
2017-08-31 10:33:40 +00:00
if sh.PongTimeout < 0 {
sh.PongTimeout = DefaultPongTimeout
2017-08-24 11:29:22 +00:00
}
2017-08-31 10:33:40 +00:00
if sh.PingPeriod <= 0 {
sh.PingPeriod = DefaultPingPeriod
2017-08-24 11:29:22 +00:00
}
2017-08-31 10:33:40 +00:00
if sh.MaxMessageSize <= 0 {
sh.MaxMessageSize = DefaultMaxMessageSize
2017-08-24 11:29:22 +00:00
}
2017-08-24 10:42:40 +00:00
}