valyala/fasthttp

use tcpKeepaliveListener and reuseport together

Fermée

#1 320 ouverte le 14 juin 2022

 (3 commentaires) (0 réaction) (0 personne assignée)Go (1 755 forks)batch import
enhancementhelp wanted

Métriques du dépôt

Stars
 (21 741 étoiles)
Métriques de merge PR
 (Merge moyen 3j) (44 PRs mergées en 30 j)

Description

I need the functionality of both tcpKeepaliveListener and reuseport. something like this:

func ListenAndServe() error {
	s := &fasthttp.Server{
		Handler: handler,
		TCPKeepalive: true,
		TCPKeepalivePeriod: 30 * time.Second,
	}
	ln, err := reuseport.Listen("tcp4", ":8080")
	if err != nil {
		return err
	}
	if tcpln, ok := ln.(*net.TCPListener); ok {
		return s.Serve(tcpKeepaliveListener{
			TCPListener:     tcpln,
			keepalive:       s.TCPKeepalive,
			keepalivePeriod: s.TCPKeepalivePeriod,
		})
	}
	return s.Serve(ln)
}

is there a reason why tcpKeepaliveListener is private? is there another way to have both functionalities that I'm missing here? thanks a lot

Guide contributeur