Go で複数の http.ServeMux インスタンスを結合するには?

Susan Sarandon
リリース: 2024-10-30 07:22:27
オリジナル
670 人が閲覧しました

How to Combine Multiple http.ServeMux Instances in Go?

複数の http.ServeMux インスタンスの結合

Go では、http.ServeMux は HTTP リクエストを処理およびルーティングする便利な方法です。ただし、http.ServeMux の 2 つ以上のインスタンスを組み合わせて、同じポート番号で同時にサービスを提供する必要がある状況が発生する場合があります。

機能を組み合わせた ServeMux のネスト

別個の 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>
ログイン後にコピー

この例では:

  • rootMux は、すべての受信リクエストを処理するメインのマルチプレクサです。
  • subMuxA
  • /top_path/a で始まるパスを持つリクエストは subMuxA によって処理されます。
  • /top_path/b で始まるパスを持つリクエストは、subMuxA によって処理されます。 subMuxB.

結論

http.ServeMux インスタンスをネストすることで、複数の Mux を簡単に組み合わせて同じポートで提供でき、さまざまな種類のGo アプリケーション内のリクエスト。

以上がGo で複数の http.ServeMux インスタンスを結合するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!