Go では、サーバーがリスニングを開始した後にブラウザーを起動する必要がある状況が発生する可能性があります。この記事では、この課題に効果的に取り組むためのソリューションを提供します。
変更されたコードは、次の 3 段階のプロセスに従います。
import ( // Standard library packages "fmt" "log" "net" "net/http" // Third party packages "github.com/skratchdot/open-golang/open" "github.com/julienschmidt/httprouter" ) 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 a TCP listener on port 3000 l, err := net.Listen("tcp", "localhost:3000") if err != nil { log.Fatal(err) } // Start the browser to connect to the server err = open.Start("http://localhost:3000/test") if err != nil { log.Println(err) } // Start the blocking server loop log.Fatal(http.Serve(l, r)) }
このアプローチにより、サーバーが http.Serve のブロッキング ループに入る前にブラウザが接続されます。リスニングとサーバー ループの開始ステップを分離することで、ブラウザーの起動制御が可能になります。リスニング ソケットが開いているため、ブラウザは接続できるようになります。
ListenAndServe を直接使用すると、ソケットを開く手順がスキップされ、サーバーが起動した後にのみブラウザが接続されることに注意することが重要です。リスニング。これらの手順を分割することで、ブラウザの起動タイミングをより細かく制御できるようになり、希望の時間に確実に接続できるようになります。
以上がGo サーバーがリッスンを開始した後にブラウザを起動するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。