Maison >développement back-end >Golang >Comment ouvrir automatiquement un navigateur après le démarrage d'un serveur HTTP Go ?

Comment ouvrir automatiquement un navigateur après le démarrage d'un serveur HTTP Go ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-15 16:49:14710parcourir

How to Automatically Open a Browser After Starting a Go HTTP Server?

Ouverture du navigateur après le démarrage du serveur

Dans Go, l'ouverture d'un navigateur après que le serveur a commencé à écouter peut être réalisée avec une approche légèrement modifiée. Voici comment procéder :

Code

package main

import (
    "fmt"
    "log"
    "net"
    "net/http"

    "github.com/julienschmidt/httprouter"
    "github.com/skratchdot/open-golang/open"
)

// Add a handler on "/test"
func main() {
    // Instantiate a new router
    r := httprouter.New()
    r.GET("/test", func(w http.ResponseWriter, r *http.Request, _ httprouter.Params) {
        // Simply write some test data for now
        fmt.Fprint(w, "Welcome!\n")
    })

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

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

    // Enter the server loop
    if err := http.Serve(l, r); err != http.ErrServerClosed {
        log.Fatal(err)
    }
}

Explication

Le code suit ce processus :

  1. Ouvrir l'écouteur : Un écouteur TCP est créé et ouvert sur le port 3000. Cela permet au serveur de commencer à écouter les messages entrants. connexions.
  2. Démarrez le navigateur : À l'aide du package open-golang/open, le navigateur est ouvert à l'URL de test ("http://localhost:3000/test"). Le navigateur peut se connecter au serveur car le socket d'écoute est déjà ouvert.
  3. Entrez dans la boucle du serveur : Enfin, la méthode http.Serve est appelée, qui entre dans la boucle principale du serveur. Le serveur attend les connexions entrantes et traite les demandes en conséquence.

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