Maison > développement back-end > Golang > Comment combiner plusieurs instances http.ServeMux pour partager un port dans Go ?

Comment combiner plusieurs instances http.ServeMux pour partager un port dans Go ?

Mary-Kate Olsen
Libérer: 2024-10-31 01:56:29
original
808 Les gens l'ont consulté

How Can You Combine Multiple http.ServeMux Instances to Share a Port in Go?

Combinaison de plusieurs instances http.ServeMux pour le partage de ports

Dans le domaine du service HTTP de Golang, on peut rencontrer un scénario dans lequel plusieurs http. Les instances ServeMux sont disponibles et doivent être servies sur un port commun. Pour y parvenir, envisagez l'approche suivante.

Combinaison d'instances ServeMux (fonction combinedMux)

Pour permettre à plusieurs instances ServeMux d'être servies sur le même port, vous pouvez utiliser une fonction comme CombinedMux :

<code class="go">func combinedMux(muxes []http.ServeMux) http.Handler {
    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
        for _, mux := range muxes {
            mux.ServeHTTP(w, r)
            return // Stop serving if a match is found
        }
    })
}</code>
Copier après la connexion

Approche alternative : imbrication de gestionnaires

Vous pouvez également opter pour l'imbrication de gestionnaires, où un ServeMux est imbriqué dans un autre. Cette approche offre de la flexibilité et permet un contrôle plus fin sur le routage :

<code class="go">rootMux := http.NewServeMux()
subMux := http.NewServeMux()

subMux.HandleFunc("/sub_path", myHandleFunc)

rootMux.Handle("/top_path/", http.StripPrefix("/top_path", subMux))

http.ListenAndServe(":8000", rootMux)</code>
Copier après la connexion

Dans cet exemple, les requêtes sont traitées par myHandleFunc si l'URL correspond à /top_path/sub_path. Le StripPrefix garantit que le multiplexeur imbriqué ne gère que la partie pertinente de l'URL.

Les deux approches peuvent combiner efficacement plusieurs instances ServeMux et fournir un moyen de diffuser du contenu sur un port partagé. Le choix entre eux dépend des exigences et des préférences spécifiques.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal