在go中创建grpc服务器流端点时违反客户端流协议

在go中创建grpc服务器流端点时违反客户端流协议,go,stream,grpc,grpc-go,Go,Stream,Grpc,Grpc Go,我正在尝试创建grpc服务器流端点 这是我的protobuf文件 syntax = "proto3"; option go_package = "mirror_streampb"; option java_package = "com.mirror_stream"; option java_outer_classname = "StreamIdsProto"; option java_multiple_files

我正在尝试创建grpc服务器流端点

这是我的protobuf文件

syntax = "proto3";

option go_package = "mirror_streampb";
option java_package = "com.mirror_stream";
option java_outer_classname = "StreamIdsProto";
option java_multiple_files = true;

package mirror_stream;

service StreamIDs {

    rpc ListIDs(ListIDsRequest) returns (stream ListIDsResponse) {}

}

message ListIDsRequest {
    int32 num = 1;
}

message ListIDsResponse {
    int32 num = 1;
    int32 id = 2;
}

这是我对该方法的golang实现。它只返回一些随机数

func (s *Server) ListIDs(req *streampb.ListIDsRequest, stream streampb.StreamIDs_ListIDsServer) error {

    for i := int32(0); i < req.Num; i++ {
        resp := &streampb.ListIDsResponse{
            Num: i,
            Id:  int32(rand.Intn(10000000)),
        }
        if err := stream.Send(resp); err != nil {
            return err
        }
    }
    return nil
}
func(s*服务器)ListIDs(req*streampb.ListIDsRequest,streampb.StreamIDs\u ListIDsServer)错误{
对于i:=int32(0);i
因此,当我尝试调用该方法时,在调用时出现以下错误
失败:code:unknown message:grpc:client streaming protocol违规:get,want

我不知道它为什么会来,从哪里来


有人能帮我解决这个问题吗?

服务器看起来不错。客户端是什么?@BurakSerdar没有客户端,我正在尝试使用yab来调用它。类似这样的
yab myService mirror\u stream.StreamIDs/ListIDs-r'{“num”:10}'-p localhost:50051