Go에서는 서버가 Listening을 시작한 후 브라우저를 시작해야 하는 상황이 발생할 수 있습니다. 이 문서에서는 이 문제를 효과적으로 해결할 수 있는 솔루션을 제공합니다.
수정된 코드는 3단계 프로세스를 따릅니다.
import ( // Standard library packages "fmt" "log" "net" "net/http" // Third party packages "github.com/skratchdot/open-golang/open" "github.com/julienschmidt/httprouter" ) 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 a TCP listener on port 3000 l, err := net.Listen("tcp", "localhost:3000") if err != nil { log.Fatal(err) } // Start the browser to connect to the server 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의 차단 루프에 들어가기 전에 브라우저가 연결됩니다. 청취 단계와 서버 루프 시작 단계를 분리함으로써 브라우저 시작 제어가 가능해졌습니다. 이제 청취 소켓이 열려 있으므로 브라우저에 연결할 수 있습니다.
ListenAndServe를 사용하면 소켓 열기 단계를 직접 건너뛰므로 서버가 시작된 후에만 브라우저가 연결된다는 점에 유의하는 것이 중요합니다. 청취. 이러한 단계를 분할하면 브라우저의 시작 타이밍을 보다 효과적으로 제어할 수 있으며 원하는 시간에 연결되도록 할 수 있습니다.
위 내용은 Go 서버가 수신을 시작한 후 브라우저를 시작하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!