Guest User

Untitled

a guest
Oct 20th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. // PingMe ...
  2. func (s *Service) PingMe(ctx context.Context, in *api.PingMessage) (*api.PongMessage, error) {
  3. header := metadata.Pairs("header-key", "val")
  4. err := grpc.SendHeader(ctx, header)
  5. return &api.PongMessage{Response: fmt.Sprintf("pongback: %v", in.Greeting)}, err
  6. }
  7.  
  8. // StreamIn ...
  9. func (s *Service) StreamIn(stream api.Ping_StreamInServer) error {
  10. count := 0
  11. back := "start"
  12. for {
  13. in, err := stream.Recv()
  14. if err != nil {
  15. if err == io.EOF {
  16. break
  17. }
  18. return err
  19. }
  20.  
  21. back = fmt.Sprintf("%v %v", back, in.Greeting)
  22. count++
  23. }
  24.  
  25. return stream.SendAndClose(&api.PingCountMessage{
  26. Count: int64(count),
  27. Message: back,
  28. })
  29. }
  30.  
  31. // StreamBack ...
  32. func (s *Service) StreamBack(in *api.PingCountMessage, stream api.Ping_StreamBackServer) error {
  33. for i := int64(0); i < in.Count; i++ {
  34. err := stream.Send(&api.PingMessage{
  35. Greeting: fmt.Sprintf("pong: %v", in.Message),
  36. })
  37. if err != nil {
  38. return err
  39. }
  40. }
  41. return nil
  42. }
  43.  
  44. // StreamPing ...
  45. func (s *Service) StreamPing(stream api.Ping_StreamPingServer) error {
  46. for {
  47. in, err := stream.Recv()
  48. if err == io.EOF {
  49. fmt.Printf("unable to receive?: %v\n", err)
  50. return nil
  51. }
  52.  
  53. if err != nil {
  54. fmt.Printf("unable to receive?: %v\n", err)
  55. return err
  56. }
  57.  
  58. spew.Dump(in)
  59. out := &api.PongMessage{
  60. Response: fmt.Sprintf("pong: %v", in.Greeting),
  61. }
  62. if err = stream.Send(out); err != nil {
  63. fmt.Printf("unable to send: %v\n", err)
  64. return err
  65. }
  66. }
  67. }
Add Comment
Please, Sign In to add comment