Home >Backend Development >Golang >How to start the browser after the server starts listening?

How to start the browser after the server starts listening?

王林
王林forward
2024-02-08 22:03:32874browse

How to start the browser after the server starts listening?

php editor Strawberry will introduce to you how to start the browser after the server starts listening. After we start the server and listen to the specified port, we can write code to automatically start the browser. There are two specific implementation methods, one is to open the default browser by calling system commands, and the other is to use the browser's remote debugging protocol. No matter which method is used, corresponding configuration and calls need to be made in the code to realize the function of automatically opening the browser.

Question content

In go, how to start the browser after the server starts listening?

The best is the simplest way.

My code so far is very simple:

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")
}

Solution

Open the listener, start the browser, and then enter the server loop:

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))

There is no need to poll, as shown in another answer. If the listening socket is open before the browser starts, the browser will connect.

listenandserve is a convenience function that opens a socket and calls serve. The code in this answer splits these steps so that the browser can be opened after listening has started but before serving is blocked from being called.

The above is the detailed content of How to start the browser after the server starts listening?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:stackoverflow.com. If there is any infringement, please contact admin@php.cn delete