2017-03-14 5 views
1

最新のGoバージョンではhttp2がサポートされると聞きました。 golang.org/x/net/http2を使用せずにhttp2サーバを設置するにはどうすればよいですか?あなたはこのような何かを行うことができ、以前のバージョンでは第三者のライブラリなしでGo 1.8でhttp2サーバを設定するにはどうしたらいいですか?

package main 

import (
    "log" 
    "net/http" 
    "os" 

    "golang.org/x/net/http2" 
) 

func main() { 
    cwd, err := os.Getwd() 
    if err != nil { 
     log.Fatal(err) 
    } 

    srv := &http.Server{ 
     Addr: ":443", 
     Handler: http.FileServer(http.Dir(cwd)), 
    } 
    http2.ConfigureServer(srv, &http2.Server{}) 
    log.Fatal(srv.ListenAndServeTLS("server.crt", "server.key")) 
} 

答えて

2

あなたはほとんどの場合、net/http使用:ゴー1.6以降で

を、HTTPパッケージは/ HTTPのための透明支持体を持っていますHTTPSを使用している場合は2プロトコルです。

httpパッケージのトランスポートとサーバーは両方とも、単純な構成で自動的にHTTP/2サポートを有効にします。もっと複雑な設定でHTTP/2を有効にしたり、下位のHTTP/2機能を使用したり、Goのhttp2パッケージの新しいバージョンを使用するには、 "golang.org/x/net/http2"を直接インポートして、ConfigureTransportおよび/またはConfigureServer関数を使用します。 golang.org/x/net/http2パッケージを使用してHTTP/2を手動で設定することは、net/httpパッケージの組み込みHTTP/2サポートよりも優先されます。

+0

通常どおりにTLS接続を設定すると、自動的にhttp2が追加されますか? – Alex

+0

これでBtwは何らかの方法でWebsocket接続にアップグレードする手順を変更しますか?私はまだゴリラ/ウェブソケットを手に入れることができますか? – Alex

+1

自動的にhttp2を行うはずです。また、websocketへのアップグレード手順を変更してはいけません。 – dave

関連する問題