service.go 637 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package main
  2. import (
  3. "io"
  4. "log"
  5. "research/grpc_msg_size/pb"
  6. )
  7. type server struct{}
  8. func (s server) Test(stream pb.Test_TestServer) error {
  9. for {
  10. req, err := stream.Recv()
  11. if err == io.EOF {
  12. log.Println("recv eof")
  13. break
  14. }
  15. if err != nil {
  16. log.Println("recv error:", err)
  17. break
  18. }
  19. log.Println("recv len", len(req.Msg))
  20. err = stream.Send(&pb.Response{Msg: msg})
  21. if err != nil {
  22. log.Println("send error:", err)
  23. }
  24. log.Println("send msg", len(msg))
  25. }
  26. return nil
  27. }
  28. var msg string
  29. func init() {
  30. var buf []byte
  31. for i := 0; i < 1024*1024*1024; i++ {
  32. buf = append(buf, '1')
  33. }
  34. msg = string(buf)
  35. }