在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 = 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
}

因此,当我尝试调用方法时,出现此错误Failed while making call: code:unkNown message:grpc: client streaming protocol violation: get <nil>,want <EOF>

我不确定它为什么来自哪里以及来自哪里。

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)