W aplikacji Go, w jaki sposób mogę uruchomić przeglądarkę PO rozpoczęciu nasłuchiwania serwera?
Najlepiej w najprostszy możliwy sposób.Go: Jak uruchomić przeglądarkę PO rozpoczęciu nasłuchiwania serwera?
Mój kod tak daleko, super dumbed dół do punktu:
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")
}
W programie Go nie jest bardzo skomplikowane, aby "blokowanie" "http.ListenAndServe" "odblokowywanie": "przejść do http.ListenAndServe (...)", być może z pewną obsługą błędów. Więc jaki dokładnie jest problem? – Volker
@ Volker: Problem w tym, że to są moje pierwsze kroki w ruchu, więc nie jestem zbyt biegły w tej dziedzinie, ale w przeciwnym razie po prostu otworzyłbym nowy wątek i przespałbym kilka milisekund przed otwarciem przeglądarki; i w tej chwili mam inne rzeczy do zrobienia;) Ponadto, jeśli ListenAndServer nie był blokujący, zakończyłby się z chwilą wyjścia głównego programu (AFAIK), który byłby natychmiastowy. –