gRPC エラー: 「サーバー プレフェイスを受信する前に接続が閉じられました」を解決する
提供されたコード スニペットを使用して gRPC サーバーに接続しようとすると、次のようになります。
func newClient() *dgo.Dgraph { d, err := grpc.Dial("localhost:9080", grpc.WithInsecure()) if err != nil { log.Fatal(err) } return dgo.NewDgraphClient( api.NewDgraphClient(d), ) }
次のような状況が発生する可能性がありますエラー:
rpc error: code = Unavailable desc = connection closed before server preface received
根本原因
このエラーは通常、サーバーがトランスポート層セキュリティ (TLS) を有効にして実行しているが、クライアントが接続を試行しているときに発生します。 TLS を使用せず。
ソリューション
にこの問題を解決するには、次のことを確認する必要があります:
TLS オプションがクライアントで正しく構成されていること:
tlsConfig := &tls.Config{ Certificates: []tls.Certificate{myCertificate}, RootCAs: myCAPool, } tlsOpt := grpc.WithTransportCredentials(credentials.NewTLS(tlsConfig)) conn, err := grpc.DialContext(ctx, "<connection_string>", tlsOpt)
クライアント証明書はクライアントで使用されます接続:
クライアント接続でクライアント証明書を利用していることを確認してください。
クライアントで TLS を適切に構成することで、「接続が閉じられた」という事態を防ぐことができます。 「サーバー プレフェイスを受信する前に」エラーが発生した場合は、TLS 対応サーバーへの接続を正常に確立してください。
以上がgRPC エラー: 「サーバー プレフェイスを受信する前に接続が閉じられました」を修正する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。