Go では、http.ServeMux は HTTP リクエストを処理およびルーティングする便利な方法です。ただし、http.ServeMux の 2 つ以上のインスタンスを組み合わせて、同じポート番号で同時にサービスを提供する必要がある状況が発生する場合があります。
別個の CombinedMux 関数を使用すると、http.ServeMux が http.Handler インターフェイスを実装するという事実を利用できます。これにより、あるマルチプレクサを別のマルチプレクサの中に入れ子にすることができます:
<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>
この例では:
http.ServeMux インスタンスをネストすることで、複数の Mux を簡単に組み合わせて同じポートで提供でき、さまざまな種類のGo アプリケーション内のリクエスト。
以上がGo で複数の http.ServeMux インスタンスを結合するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。