Maison > développement back-end > Golang > Erreur gRPC : Comment réparer « Connexion fermée avant la réception de la préface du serveur » ?

Erreur gRPC : Comment réparer « Connexion fermée avant la réception de la préface du serveur » ?

DDD
Libérer: 2024-12-11 07:29:09
original
422 Les gens l'ont consulté

gRPC Error: How to Fix

Erreur gRPC : résolution de « Connexion fermée avant la réception de la préface du serveur »

Lors de la tentative de connexion à un serveur gRPC à l'aide de l'extrait de code fourni :

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

    return dgo.NewDgraphClient(
        api.NewDgraphClient(d),
    )
}
Copier après la connexion

vous pouvez rencontrer ce qui suit erreur :

rpc error: code = Unavailable desc = connection closed before server preface received
Copier après la connexion

Cause première

Cette erreur se produit généralement lorsque le serveur s'exécute avec Transport Layer Security (TLS) activé, mais que le client tente de se connecter sans utiliser TLS.

Solution

Pour résoudre ce problème, vous devez vous assurer que :

  1. Les options TLS sont correctement configurées sur le client :

    tlsConfig := &tls.Config{
        Certificates: []tls.Certificate{myCertificate},
        RootCAs:      myCAPool,
    }
    
    tlsOpt := grpc.WithTransportCredentials(credentials.NewTLS(tlsConfig))
    
    conn, err := grpc.DialContext(ctx, "<connection_string>", tlsOpt)
    Copier après la connexion
  2. Les certificats clients sont Utilisé sur la connexion client :

    Assurez-vous que vous utilisez des certificats clients sur le client connexion.

En configurant correctement TLS sur le client, vous pouvez empêcher l'erreur « Connexion fermée avant la réception de la préface du serveur » et établir une connexion réussie au serveur compatible TLS.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal