github.com/micro/go-micro/v2@v2.9.1/client/rpc_response.go (about)

     1  package client
     2  
     3  import (
     4  	"github.com/micro/go-micro/v2/codec"
     5  	"github.com/micro/go-micro/v2/transport"
     6  )
     7  
     8  type rpcResponse struct {
     9  	header map[string]string
    10  	body   []byte
    11  	socket transport.Socket
    12  	codec  codec.Codec
    13  }
    14  
    15  func (r *rpcResponse) Codec() codec.Reader {
    16  	return r.codec
    17  }
    18  
    19  func (r *rpcResponse) Header() map[string]string {
    20  	return r.header
    21  }
    22  
    23  func (r *rpcResponse) Read() ([]byte, error) {
    24  	var msg transport.Message
    25  
    26  	if err := r.socket.Recv(&msg); err != nil {
    27  		return nil, err
    28  	}
    29  
    30  	// set internals
    31  	r.header = msg.Header
    32  	r.body = msg.Body
    33  
    34  	return msg.Body, nil
    35  }