首页 > 后端开发 > Golang > Go Server监听后如何自动打开浏览器?

Go Server监听后如何自动打开浏览器?

Mary-Kate Olsen
发布: 2024-12-16 18:45:15
原创
814 人浏览过

How to Automatically Open a Browser After a Go Server Starts Listening?

如何在 Go 中服务器启动后启动浏览器

在 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板