在 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 Server监听后如何自动打开浏览器?的详细内容。更多信息请关注PHP中文网其他相关文章!