Go で Web アプリケーションを構築する場合、サーバーがリッスンし始めた後にブラウザを起動する必要がある場合があります。接続。この記事では、この要件に対処する簡単な方法を説明します。
提供されたコード スニペットは、httprouter ライブラリを使用して基本的な HTTP サーバーをセットアップします。ただし、サーバーが完全に初期化される前にブラウザを開こうとします:
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, 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))
この改訂されたコードでは、リスナーを開くステップとサーバー ループを開始するステップが分離されています。これにより、ブラウザは、ブロッキング http.Serve 呼び出しが行われる前に接続できるようになります。したがって、サーバーが正常にリッスンを開始した後、ブラウザが開きます。
以上がGo サーバーがリッスンを開始した後にブラウザを自動的に開くにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。