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 : 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), ) }
vous pouvez rencontrer ce qui suit erreur :
rpc error: code = Unavailable desc = connection closed before server preface received
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 :
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)
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!