Как убедиться, что сообщение было получено при двунаправленной потоковой передаче gRPC? - PullRequest
0 голосов
/ 10 мая 2019

Как узнать, что сообщение, которое я отправляю через поток gRPC, было получено на другом конце?

Есть ли способ сделать это в двунаправленной потоковой передаче gRPC или мне нужно просто использовать потоковую передачу, а затем отправить ответ обратно?

Прото-файл:


service SimpleService {
rpc SimpleRPC (stream SimpleData) returns (stream SimpleData) {}
}

message SimpleData {
string msg = 1;
}

Go код:


client := pb.NewSimpleServiceClient(conn)
stream, err := client.SimpleRPC(context.Background())
waitc := make(chan struct{})

msg := &pb.SimpleData{"sup"}
go func() {
for {
   stream.Send(msg)
    }
}()
<-waitc
stream.CloseSend()

...