Dans Go, http.ServeMux est un moyen pratique de gérer et d'acheminer les requêtes HTTP. Cependant, vous pouvez rencontrer des situations dans lesquelles vous devez combiner deux ou plusieurs instances de http.ServeMux et les servir simultanément sur le même numéro de port.
Au lieu d'écrire un fonction combinéeMux distincte, vous pouvez utiliser le fait que http.ServeMux implémente l'interface http.Handler. Cela vous permet d'imbriquer un multiplexeur dans un autre :
<code class="go">rootMux := http.NewServeMux() subMuxA := http.NewServeMux() subMuxB := http.NewServeMux() // Initialize muxA and muxB with their respective handlers // Handle requests for "/sub_path/a" in subMuxA subMuxA.HandleFunc("/sub_path/a", myHandleFuncA) // Handle requests for "/sub_path/b" in subMuxB subMuxB.HandleFunc("/sub_path/b", myHandleFuncB) // Nest subMuxA and subMuxB under "/top_path" in rootMux rootMux.Handle("/top_path/a", subMuxA) rootMux.Handle("/top_path/b", subMuxB) http.ListenAndServe(":8080", rootMux)</code>
Dans cet exemple :
En imbriquant les instances http.ServeMux, vous pouvez facilement combiner plusieurs multiplexeurs et les servir sur le même port, offrant ainsi un moyen flexible et efficace de gérer différents types de demandes dans votre application Go.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!