How to start the browser after the server starts listening?

王林
Release: 2024-02-08 22:03:32
forward
846 people have browsed it

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")
}
Copy after login

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))
Copy after login

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!

source:stackoverflow.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!