github.com/annwntech/go-micro/v2@v2.9.5/transport/grpc/socket.go (about) 1 package grpc 2 3 import ( 4 "github.com/annwntech/go-micro/v2/transport" 5 pb "github.com/annwntech/go-micro/v2/transport/grpc/proto" 6 "google.golang.org/grpc" 7 ) 8 9 type grpcTransportClient struct { 10 conn *grpc.ClientConn 11 stream pb.Transport_StreamClient 12 13 local string 14 remote string 15 } 16 17 type grpcTransportSocket struct { 18 stream pb.Transport_StreamServer 19 local string 20 remote string 21 } 22 23 func (g *grpcTransportClient) Local() string { 24 return g.local 25 } 26 27 func (g *grpcTransportClient) Remote() string { 28 return g.remote 29 } 30 31 func (g *grpcTransportClient) Recv(m *transport.Message) error { 32 if m == nil { 33 return nil 34 } 35 36 msg, err := g.stream.Recv() 37 if err != nil { 38 return err 39 } 40 41 m.Header = msg.Header 42 m.Body = msg.Body 43 return nil 44 } 45 46 func (g *grpcTransportClient) Send(m *transport.Message) error { 47 if m == nil { 48 return nil 49 } 50 51 return g.stream.Send(&pb.Message{ 52 Header: m.Header, 53 Body: m.Body, 54 }) 55 } 56 57 func (g *grpcTransportClient) Close() error { 58 return g.conn.Close() 59 } 60 61 func (g *grpcTransportSocket) Local() string { 62 return g.local 63 } 64 65 func (g *grpcTransportSocket) Remote() string { 66 return g.remote 67 } 68 69 func (g *grpcTransportSocket) Recv(m *transport.Message) error { 70 if m == nil { 71 return nil 72 } 73 74 msg, err := g.stream.Recv() 75 if err != nil { 76 return err 77 } 78 79 m.Header = msg.Header 80 m.Body = msg.Body 81 return nil 82 } 83 84 func (g *grpcTransportSocket) Send(m *transport.Message) error { 85 if m == nil { 86 return nil 87 } 88 89 return g.stream.Send(&pb.Message{ 90 Header: m.Header, 91 Body: m.Body, 92 }) 93 } 94 95 func (g *grpcTransportSocket) Close() error { 96 return nil 97 }