ホームページ > バックエンド開発 > Golang > gRPC エラー: 「サーバー プレフェイスを受信する前に接続が閉じられました」を修正する方法は?

gRPC エラー: 「サーバー プレフェイスを受信する前に接続が閉じられました」を修正する方法は?

DDD
リリース: 2024-12-11 07:29:09
オリジナル
396 人が閲覧しました

gRPC Error: How to Fix

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 を使用せず。

ソリューション

にこの問題を解決するには、次のことを確認する必要があります:

  1. TLS オプションがクライアントで正しく構成されていること:

    tlsConfig := &tls.Config{
        Certificates: []tls.Certificate{myCertificate},
        RootCAs:      myCAPool,
    }
    
    tlsOpt := grpc.WithTransportCredentials(credentials.NewTLS(tlsConfig))
    
    conn, err := grpc.DialContext(ctx, "<connection_string>", tlsOpt)
    ログイン後にコピー
  2. クライアント証明書はクライアントで使用されます接続:

    クライアント接続でクライアント証明書を利用していることを確認してください。

クライアントで TLS を適切に構成することで、「接続が閉じられた」という事態を防ぐことができます。 「サーバー プレフェイスを受信する前に」エラーが発生した場合は、TLS 対応サーバーへの接続を正常に確立してください。

以上がgRPC エラー: 「サーバー プレフェイスを受信する前に接続が閉じられました」を修正する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート