>백엔드 개발 >Golang >Go 서버가 수신을 시작한 후 자동으로 브라우저를 여는 방법은 무엇입니까?

Go 서버가 수신을 시작한 후 자동으로 브라우저를 여는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-16 18:45:15815검색

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

Go에서 서버 시작 후 브라우저를 시작하는 방법

Go에서 웹 애플리케이션을 구축할 때 서버가 수신 대기를 시작한 후에 브라우저를 시작해야 할 수도 있습니다. 사이. 이 문서에서는 이 요구 사항을 해결하는 간단한 방법을 제공합니다.

원본 코드

제공된 코드 조각은 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.