Heim > Backend-Entwicklung > Golang > gRPC-Fehler: Wie behebt man „Verbindung geschlossen, bevor Server-Vorwort empfangen wurde'?

gRPC-Fehler: Wie behebt man „Verbindung geschlossen, bevor Server-Vorwort empfangen wurde'?

DDD
Freigeben: 2024-12-11 07:29:09
Original
428 Leute haben es durchsucht

gRPC Error: How to Fix

gRPC-Fehler: Behebung von „Verbindung geschlossen, bevor Server-Vorwort empfangen wurde“

Beim Versuch, mit dem bereitgestellten Code-Snippet eine Verbindung zu einem gRPC-Server herzustellen:

func newClient() *dgo.Dgraph {
    d, err := grpc.Dial("localhost:9080", grpc.WithInsecure())
    if err != nil {
        log.Fatal(err)
    }

    return dgo.NewDgraphClient(
        api.NewDgraphClient(d),
    )
}
Nach dem Login kopieren

Sie können auf Folgendes stoßen Fehler:

rpc error: code = Unavailable desc = connection closed before server preface received
Nach dem Login kopieren

Ursache

Dieser Fehler tritt normalerweise auf, wenn der Server mit aktivierter Transport Layer Security (TLS) läuft, der Client jedoch versucht, eine Verbindung herzustellen ohne TLS zu verwenden.

Lösung

Um dieses Problem zu beheben, müssen Sie sicherstellen dass:

  1. TLS-Optionen auf dem Client korrekt konfiguriert sind:

    tlsConfig := &tls.Config{
        Certificates: []tls.Certificate{myCertificate},
        RootCAs:      myCAPool,
    }
    
    tlsOpt := grpc.WithTransportCredentials(credentials.NewTLS(tlsConfig))
    
    conn, err := grpc.DialContext(ctx, "<connection_string>", tlsOpt)
    Nach dem Login kopieren
  2. Client-Zertifikate sind Wird auf der Client-Verbindung verwendet:

    Stellen Sie sicher, dass Sie Client-Zertifikate auf dem Client verwenden Verbindung.

Durch die ordnungsgemäße Konfiguration von TLS auf dem Client können Sie den Fehler „Verbindung geschlossen, bevor Server-Vorwort empfangen wurde“ verhindern und eine erfolgreiche Verbindung zum TLS-fähigen Server herstellen.

Das obige ist der detaillierte Inhalt vongRPC-Fehler: Wie behebt man „Verbindung geschlossen, bevor Server-Vorwort empfangen wurde'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage