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  }