34 lines
479 B
Go
34 lines
479 B
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"git.gqnotes.com/guoqiang/grpcexercises/calculator/pb"
|
||
|
"io"
|
||
|
"log"
|
||
|
)
|
||
|
|
||
|
// Sum 计算和-客户端流式
|
||
|
func (s *Server) Sum(stream pb.CalculateService_SumServer) error {
|
||
|
var sum int64
|
||
|
|
||
|
for {
|
||
|
req, err := stream.Recv()
|
||
|
|
||
|
if err == io.EOF {
|
||
|
log.Printf("req.Num: %v", req)
|
||
|
break
|
||
|
}
|
||
|
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
sum += req.Num
|
||
|
}
|
||
|
|
||
|
if err := stream.SendAndClose(&pb.SumResponse{Total: sum}); err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
return nil
|
||
|
}
|