github.com/wangkui503/aero@v1.0.0/Listener.go (about) 1 package aero 2 3 import ( 4 "net" 5 "time" 6 ) 7 8 const keepAlivePeriod = 3 * time.Minute 9 10 // Listener sets TCP keep-alive timeouts on accepted connections. 11 type Listener struct { 12 *net.TCPListener 13 } 14 15 // Accept accepts incoming connections. 16 func (listener Listener) Accept() (net.Conn, error) { 17 connection, err := listener.AcceptTCP() 18 19 if err != nil { 20 return nil, err 21 } 22 23 connection.SetKeepAlive(true) 24 connection.SetKeepAlivePeriod(keepAlivePeriod) 25 connection.SetNoDelay(true) 26 27 return connection, nil 28 }