valyala/fasthttp

use tcpKeepaliveListener and reuseport together

Fechada

#1.320 aberto em 14 de jun. de 2022

 (3 comentários) (0 reação) (0 responsável)Go (1.755 forks)batch import
enhancementhelp wanted

Métricas do repositório

Stars
 (21.741 estrelas)
Métricas de merge de PR
 (Mesclagem média 3d) (44 fundiu PRs em 30d)

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

Guia do colaborador