Pouvez-vous détecter quand un serveur HTTP commence à écouter ?
Lorsque vous utilisez l'interface du serveur net/http, il peut être difficile de détecter quand le serveur HTTP lance l'écoute. La fonction ListenAndServe ne fournit pas de mécanisme de notification lorsque le serveur est prêt.
Solution alternative
Au lieu de vous fier à une fonction de notification intégrée, vous pouvez gérer manuellement le processus en écrivant le code directement dans votre application. Cela vous permet de signaler quand le socket d'écoute devient disponible :
l, err := net.Listen("tcp", ":8080") if err != nil { // Handle error } // Signal that the server is open for business, such as printing a message or setting a variable if err := http.Serve(l, rootHandler); err != nil { // Handle error }
En signalant manuellement l'état ouvert du socket, vous pouvez détecter l'état de préparation du serveur sans compter sur un mécanisme de veille, ce qui risque d'entraîner un timing inexact. De plus, si l'étape de signalisation ne bloque pas, HTTP.Serve peut gérer de manière transparente tout retard sur le socket d'écoute.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!