Heim >Backend-Entwicklung >Golang >Wie öffne ich automatisch einen Browser, nachdem ein Go-Server mit dem Abhören beginnt?

Wie öffne ich automatisch einen Browser, nachdem ein Go-Server mit dem Abhören beginnt?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-16 18:45:15817Durchsuche

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

So starten Sie den Browser nach dem Serverstart in Go

Beim Erstellen von Webanwendungen in Go kann es erforderlich sein, den Browser zu starten, nachdem der Server begonnen hat, darauf zu warten Verbindungen. Dieser Artikel bietet eine einfache Methode, um dieser Anforderung gerecht zu werden.

Originalcode

Das bereitgestellte Code-Snippet richtet einen einfachen HTTP-Server mithilfe der httprouter-Bibliothek ein. Es wird jedoch vorzeitig versucht, den Browser zu öffnen, bevor der Server vollständig initialisiert wurde:

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

Lösung

Um den Browser zu öffnen, nachdem der Server mit dem Abhören begonnen hat, ändern Sie den Code wie folgt:

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

Dieser überarbeitete Code trennt die Schritte des Öffnens des Listeners und des Startens der Serverschleife. Dadurch kann der Browser eine Verbindung herstellen, bevor der blockierende http.Serve-Aufruf erfolgt. Daher wird der Browser geöffnet, nachdem der Server erfolgreich mit dem Abhören begonnen hat.

Das obige ist der detaillierte Inhalt vonWie öffne ich automatisch einen Browser, nachdem ein Go-Server mit dem Abhören beginnt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn