Maison >développement back-end >Golang >Comment puis-je détecter quand un serveur Go net/http commence à écouter ?

Comment puis-je détecter quand un serveur Go net/http commence à écouter ?

DDD
DDDoriginal
2024-12-29 12:36:15266parcourir

How Can I Detect When a Go net/http Server Starts Listening?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn