Maison  >  Article  >  développement back-end  >  Comment démarrer le navigateur une fois que le serveur commence à écouter ?

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

王林
王林avant
2024-02-08 22:03:32825parcourir

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")
}

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))

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer