In Go, wie kann ich den Browser starten, nachdem der Server zu hören begonnen hat?
Vorzugsweise der einfachste Weg möglich.Go: Wie kann ich den Browser NACH dem Starten des Servers starten?
Mein Code so weit, super verdummt auf den Punkt:
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")
}
In Go ist es nicht sehr kompliziert, das "blocking" 'http.ListenAndServe'" nonblocking "zu machen:' go http.ListenAndServe (...) ', vielleicht mit etwas Fehlerbehandlung. Also, was genau ist das Problem? – Volker
@Volker: Das Problem ist, das sind meine ersten Schritte, also bin ich nicht sehr flüssig darin, aber ansonsten würde ich einfach einen neuen Thread erstellen und für ein paar Millisekunden schlafen, bevor ich den Browser öffne; und im Moment habe ich noch andere Dinge zu tun;) Wenn ListenAndServer nicht blockierend ist, würde es auch den Moment verlassen, wenn das Hauptprogramm beendet wird (AFAIK), was sofort der Fall wäre. –