偵測 HTTP 伺服器監聽啟動
使用 net/http 套件初始化 HTTP 伺服器時,主動監控伺服器的監聽可能具有挑戰性地位。與一直執行到伺服器關閉為止的 ListenAndServe 函數不同,似乎沒有直接的機制來偵測伺服器的啟動和偵聽階段。
自訂方法
給定由於缺乏明確的通知管道,需要客製化解決方案。透過繞過 ListenAndServe 輔助函數,您可以手動開啟偵聽套接字。一旦建立了套接字,就可以使用 http.Serve 啟動伺服器,從而使您能夠控制訊號過程。以下是示範此方法的程式碼片段:
l, err := net.Listen("tcp", ":8080") if err != nil { // handle error } // Signal server's listening status. // Closing the done channel indicates server is listening. done := make(chan bool) go func() { err := http.Serve(l, rootHandler) if err != nil { // handle error } close(done) })() // Wait for the done channel to close, indicating the server is listening. <-done
此方法允許明確控制伺服器的偵聽狀態。透過監視完成的通道,您可以在伺服器準備好接受傳入連線時收到通知。
以上是如何偵測我的 Go net/http 伺服器何時開始監聽?的詳細內容。更多資訊請關注PHP中文網其他相關文章!