我正在try 在Golang实现一个HTTP服务器.

我的问题是,我必须将任何特定时间的最大活动连接数限制为20.

推荐答案

如果不想实现自己的包装器,可以使用netutil.LimitListener函数包装net.Listener:-

connectionCount := 20

l, err := net.Listen("tcp", ":8000")

if err != nil {
    log.Fatalf("Listen: %v", err)
}

defer l.Close()

l = netutil.LimitListener(l, connectionCount)

log.Fatal(http.Serve(l, nil))

Go相关问答推荐

Zitadel示例Go Webapp加密密钥

如何存储来自异步Goroutine的返回值列表?

Golang应用程序:所请求的资源上不存在HTTP-Control-Allow-Origin标头

如何配置vscode以在Go中显示不必要的(过度指定的)泛型?

理解Golang中的IOTA和常量

Makefilego version和read命令

如何在出现错误时停止从通道读取?

从文件读取字节,将其保存到 struct 体并修改值

在运行时更改 Go lang slog 的日志(log)级别

golang testscript .txtar 语法,用于 stderr 或 stdout 中包含的文本

Go 中将 int 切片转换为自定义 int 切片指针类型的函数

Golang 创建一个带有处理程序的模拟数据库并使用接口调用数据库

golang:解组动态 YAML 注释

如何使用 GolangCI 删除未使用的导入

无法使用 gocsv 读取引用字段

Gorm 预加载给出了模糊的列错误

使用 golang 生成 vim

CORS grpc 网关 GoLang

如果 transaction.Commit 对带有 postgres 连接的 SQL 失败,您是否需要调用 transaction.RollBack

Golang invopop jsonschema 使用 if/then/else