首頁 > 後端開發 > Golang > gRPC 錯誤:如何修復「連線在收到伺服器前言之前已關閉」?

gRPC 錯誤:如何修復「連線在收到伺服器前言之前已關閉」?

DDD
發布: 2024-12-11 07:29:09
原創
406 人瀏覽過

gRPC Error: How to Fix

gRPC 錯誤:解決「連線在收到伺服器前言之前關閉」

嘗試使用提供的程式碼片段連接到 gRPC 伺服器時:

1

2

3

4

5

6

7

8

9

10

func newClient() *dgo.Dgraph {

    d, err := grpc.Dial("localhost:9080", grpc.WithInsecure())

    if err != nil {

        log.Fatal(err)

    }

 

    return dgo.NewDgraphClient(

        api.NewDgraphClient(d),

    )

}

登入後複製

您可能會遇到以下情況錯誤:

1

rpc error: code = Unavailable desc = connection closed before server preface received

登入後複製

根本原因

當伺服器在啟用傳輸層安全(TLS ) 的情況下運行,但客戶端嘗試連線時,通常會發生此錯誤不使用TLS。

解決方案

解決此問題問題,您需要確保:

  1. 在客戶端上正確配置TLS選項:

    1

    2

    3

    4

    5

    6

    7

    8

    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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板