当我查看 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/