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