valyala/fasthttp

use tcpKeepaliveListener and reuseport together

已關閉

#1,320 建立於 2022年6月14日

 (3 則留言) (0 個反應) (0 位負責人)Go (1,755 個分叉)batch import
enhancementhelp wanted

倉庫指標

星標
 (21,741 顆星)
PR 合併指標
 (平均合併 3天) (30 天內合併 44 個 PR)

描述

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

貢獻者指南