go - 当 http.Server 开始监听时得到通知

标签 go

当我查看 net/http 服务器界面时,我看不到在 http.Server 出现和 时获得通知和使用react的明显方法。开始听力:

ListenAndServe(":8080", nil)

在服务器实际关闭之前,该函数不会返回。我还查看了服务器类型,但似乎没有任何东西可以让我利用那个时间。某些功能或 channel 本来会很棒,但我看不到任何功能。

有什么方法可以让我检测到该事件,还是我只能睡“足够”来伪造它?

最佳答案

ListenAndServe 是一个辅助函数,它打开一个监听套接字,然后在该套接字上提供连接。直接在应用程序中编写代码以在套接字打开时发出信号:

l, err := net.Listen("tcp", ":8080")
if err != nil {
    // handle error
}

// Signal that server is open for business. 

if err := http.Serve(l, rootHandler); err != nil {
    // handle error
}

如果信令步骤没有阻塞,那么 http.Serve 将很容易消耗监听套接字上的任何积压。

相关问题:https://stackoverflow.com/a/32742904/5728991

关于go - 当 http.Server 开始监听时得到通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60473117/

相关文章:

parsing - 允许多次读取 http.Request.Body 的正确方法是什么

Go去除重复代码的解决方案(defer, net/http)

go - 如何重构语义重复

当未使用的函数被注释掉时,Go运行时错误

goland 检查 xlsx 的文件类型

go - 解释 Go 中的类型断言

go - 返回 channel 的并发队列,锁定疑惑

go - 如何在 Golang 中转储结构的方法?

go - 想要选择一个随机数并且在所有数字都通过之前不要再次选择它

go - 将映射序列化到 gob 后 DeepEqual 不正确