Maison > développement back-end > Golang > le corps du texte

Comment démarrer le navigateur une fois que le serveur commence à écouter ?

王林
Libérer: 2024-02-08 22:03:32
avant
846 Les gens l'ont consulté

Comment démarrer le navigateur une fois que le serveur commence à écouter ?

l'éditeur php Strawberry vous présentera comment démarrer le navigateur une fois que le serveur commence à écouter. Après avoir démarré le serveur et écouté le port spécifié, nous pouvons écrire du code pour démarrer automatiquement le navigateur. Il existe deux méthodes d'implémentation spécifiques, l'une consiste à ouvrir le navigateur par défaut en appelant des commandes système et l'autre consiste à utiliser le protocole de débogage à distance du navigateur. Quelle que soit la méthode utilisée, la configuration et les appels correspondants doivent être effectués dans le code pour réaliser la fonction d'ouverture automatique du navigateur.

Contenu de la question

En go, comment démarrer le navigateur une fois que le serveur commence à écouter ?

Le meilleur est le moyen le plus simple.

Mon code jusqu'à présent est très simple :

package main

import (  
    // Standard library packages
    "fmt"
    "net/http"
    "github.com/skratchdot/open-golang/open"
    // Third party packages
    "github.com/julienschmidt/httprouter"
)


// go get github.com/toqueteos/webbrowser

func main() {  
    // Instantiate a new router
    r := httprouter.New()

    // Add a handler on /test
    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.Run("https://google.com/")
     
    // open.Start("https://google.com")

    // http://127.0.0.1:3000/test
    // Fire up the server
    http.ListenAndServe("localhost:3000", r)
    fmt.Println("ListenAndServe is blocking")  
    open.RunWith("http://localhost:3000/test", "firefox")  
    fmt.Println("Done")
}
Copier après la connexion

Solution de contournement

Ouvrez l'écouteur, démarrez le navigateur, puis entrez dans la boucle du serveur :

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

Il n'est pas nécessaire de procéder à un sondage, comme le montre une autre réponse. Si le socket d'écoute est ouvert avant le démarrage du navigateur, le navigateur se connectera.

listenandserve est une fonction pratique qui ouvre un socket et appelle le service. Le code de cette réponse divise ces étapes afin que le navigateur puisse être ouvert après le début de l'écoute mais avant que le service ne puisse être appelé.

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:stackoverflow.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!