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

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

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

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

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