valyala/fasthttp

use tcpKeepaliveListener and reuseport together

クローズ

#1,320 opened on 2022/06/14

 (3 件のコメント) (0 件のリアクション) (0 人の担当者)Go (1,755 件のフォーク)batch import
enhancementhelp wanted

Repository metrics

Stars
 (21,741 個のスター)
PR merge metrics
 (平均マージ 3d) (30d で 44 merged PRs)

説明

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

コントリビューターガイド