Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Membuka Penyemak Imbas Secara Automatik Selepas Pelayan Go Mula Mendengar?

Bagaimana untuk Membuka Penyemak Imbas Secara Automatik Selepas Pelayan Go Mula Mendengar?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-16 18:45:15817semak imbas

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

Cara Melancarkan Penyemak Imbas Selepas Permulaan Pelayan dalam Go

Apabila membina aplikasi web dalam Go, mungkin perlu memulakan penyemak imbas selepas pelayan mula mendengar sambungan. Artikel ini menyediakan kaedah mudah untuk menangani keperluan ini.

Kod Asal

Coretan kod yang disediakan menyediakan pelayan HTTP asas menggunakan perpustakaan httprouter. Walau bagaimanapun, ia cuba membuka penyemak imbas secara pramatang sebelum pelayan dimulakan sepenuhnya:

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

Penyelesaian

Untuk membuka penyemak imbas selepas pelayan mula mendengar, ubah suai kod seperti berikut:

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

Kod yang disemak ini memisahkan langkah membuka pendengar dan memulakan gelung pelayan. Ia membenarkan penyemak imbas menyambung sebelum panggilan http.Serve yang menyekat dibuat. Oleh itu, penyemak imbas dibuka selepas pelayan mula mendengar dengan jayanya.

Atas ialah kandungan terperinci Bagaimana untuk Membuka Penyemak Imbas Secara Automatik Selepas Pelayan Go Mula Mendengar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn