Dalam Go, anda mungkin menghadapi situasi di mana anda perlu memulakan penyemak imbas selepas pelayan mula mendengar. Artikel ini menyediakan penyelesaian untuk menangani cabaran ini dengan berkesan.
Kod yang diubah suai mengikut proses tiga langkah:
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)) }
Pendekatan ini memastikan penyemak imbas bersambung sebelum pelayan memasuki gelung menyekat dalam http.Serve. Dengan memisahkan langkah permulaan gelung mendengar dan pelayan, ia membenarkan kawalan permulaan penyemak imbas. Penyemak imbas kini boleh menyambung kerana soket mendengar dibuka.
Adalah penting untuk ambil perhatian bahawa menggunakan ListenAndServe terus melangkau langkah pembukaan soket, menyebabkan penyemak imbas bersambung hanya selepas pelayan dimulakan mendengar. Dengan membahagikan langkah-langkah ini, anda mendapat kawalan yang lebih besar ke atas permulaan penyemak imbasタイミング dan boleh memastikan ia bersambung pada masa yang dikehendaki.
Atas ialah kandungan terperinci Bagaimana untuk Memulakan Penyemak Imbas Selepas Pelayan Go Mula Mendengar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!