Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go 更新戈朗grpc的接收和发送消息大小_Go_Grpc - Fatal编程技术网

Go 更新戈朗grpc的接收和发送消息大小

Go 更新戈朗grpc的接收和发送消息大小,go,grpc,Go,Grpc,我用Go编写了grpc服务器,我正在尝试用以下代码将接收和发送消息大小更新为20MB,而不是默认的4MB var s *grpc.Server s = grpc.NewServer(grpc.MaxRecvMsgSize(1024*1024*20), grpc.MaxSendMsgSize(1024*1024*20)) pb.RegisterProductServer(s,mysrv) 但是上面的内容似乎不起作用,因为当我试图从一个大于max(5807570对4194304)的客户接收消息时

我用Go编写了grpc服务器,我正在尝试用以下代码将接收和发送消息大小更新为20MB,而不是默认的4MB

var s *grpc.Server
s = grpc.NewServer(grpc.MaxRecvMsgSize(1024*1024*20), grpc.MaxSendMsgSize(1024*1024*20))

pb.RegisterProductServer(s,mysrv)
但是上面的内容似乎不起作用,因为当我试图从一个大于max(5807570对4194304)的客户
接收消息时,我仍然会收到一个错误“

不确定是什么覆盖了大小

我还没有机会测试这一点,但您是否尝试过从客户端存根添加相同的选项?相同的选项可以作为拨号选项附加:

maxMsgSize := 1024*1024*20
conn, err := grpc.Dial(address, grpc.WithDefaultCallOptions(grpc.MaxRecvMsgSize(maxMsgSize), grpc.MaxSendMsgSize(maxMsgSize)))
if err != nil {
    // ...
}
defer conn.close()
client := pb.NewProductClient(conn)
// ...

我对您的用例一无所知,但如果您的响应数据可以逐段传递,那么可能会很有用。

谢谢!我们不能在服务器级别而不是在客户端控制它吗?从文档中可以看出,您不能(如果您上面的方法不起作用,我认为其他任何方法都不会起作用)。可能在GitHub repo中提交功能请求?嘿@kingkupps,有没有其他方法不使用
grpc来执行此操作。使用DefaultCallOptions
?因为此数据类型仅在grpc的同一更高版本中定义。而且,我对更新grpc版本有一些限制。