Maison > développement back-end > Golang > Comment ouvrir automatiquement un navigateur après le début de l'écoute d'un serveur Go ?

Comment ouvrir automatiquement un navigateur après le début de l'écoute d'un serveur Go ?

Mary-Kate Olsen
Libérer: 2024-12-16 18:45:15
original
814 Les gens l'ont consulté

How to Automatically Open a Browser After a Go Server Starts Listening?

Comment lancer le navigateur après le démarrage du serveur dans Go

Lors de la création d'applications Web dans Go, il peut être nécessaire de démarrer le navigateur une fois que le serveur a commencé à écouter relations. Cet article fournit une méthode simple pour répondre à cette exigence.

Code original

L'extrait de code fourni configure un serveur HTTP de base à l'aide de la bibliothèque httprouter. Cependant, il tente prématurément d'ouvrir le navigateur avant que le serveur ne soit complètement initialisé :

r := httprouter.New()
r.GET("/test", func(w http.ResponseWriter, r *http.Request, _ httprouter.Params) {
    fmt.Fprint(w, "Welcome!\n")
})
http.ListenAndServe("localhost:3000", r)
fmt.Println("ListenAndServe is blocking")
open.RunWith("http://localhost:3000/test", "firefox")
Copier après la connexion

Solution

Pour ouvrir le navigateur après que le serveur a commencé à écouter, modifiez le code comme suit :

l, err := net.Listen("tcp", "localhost:3000")
if err != nil {
    log.Fatal(err)
}

// The browser can connect now because the listening socket is open.

err = open.Start("http://localhost:3000/test")
if err != nil {
    log.Println(err)
}

// Start the blocking server loop.

log.Fatal(http.Serve(l, r))
Copier après la connexion

Ce code révisé sépare les étapes d'ouverture de l'écouteur et de démarrage de la boucle du serveur. Il permet au navigateur de se connecter avant que l'appel http.Serve bloquant ne soit effectué. Ainsi, le navigateur s'ouvre une fois que le serveur a commencé à écouter avec succès.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal