【发布时间】:2020-10-07 23:58:39
【问题描述】:
您好,我正在尝试将 gRPC 客户端连接到服务器,但即使连接成功,我在从 graphql 解析器查询它时也会收到以下错误。但是,如果我直接从解析器拨号,一切正常,所以它与客户端不保持连接打开有关。
rpc 错误:代码 = 已取消 desc = grpc:客户端连接正在关闭
client.go
var kacp = keepalive.ClientParameters{
Time: 10 * time.Second, // send pings every 10 seconds if there is no activity
Timeout: time.Second, // wait 1 second for ping back
PermitWithoutStream: true, // send pings even without active streams
}
func gqlHandler() http.HandlerFunc {
conn, err := grpc.Dial("127.0.0.1:50051", grpc.WithInsecure(),
grpc.WithKeepaliveParams(kacp),
grpc.WithBlock())
if err != nil {
panic(err)
}
defer conn.Close()
db := proto.NewPlatformDBClient(conn)
gh := handler.GraphQL(platform.NewExecutableSchema(platform.Config{Resolvers: &platform.Resolver{
DB: db,
}}))
gh = cors.Disable(gh)
return gh
}
【问题讨论】:
-
我有一个类似的问题,但有一个 Kotlin for Android 客户端。您能找到保持连接打开的任何解决方案吗?