github.com/annwntech/go-micro/v2@v2.9.5/server/rpc_response.go (about) 1 package server 2 3 import ( 4 "net/http" 5 6 "github.com/annwntech/go-micro/v2/codec" 7 "github.com/annwntech/go-micro/v2/transport" 8 ) 9 10 type rpcResponse struct { 11 header map[string]string 12 socket transport.Socket 13 codec codec.Codec 14 } 15 16 func (r *rpcResponse) Codec() codec.Writer { 17 return r.codec 18 } 19 20 func (r *rpcResponse) WriteHeader(hdr map[string]string) { 21 for k, v := range hdr { 22 r.header[k] = v 23 } 24 } 25 26 func (r *rpcResponse) Write(b []byte) error { 27 if _, ok := r.header["Content-Type"]; !ok { 28 r.header["Content-Type"] = http.DetectContentType(b) 29 } 30 31 return r.socket.Send(&transport.Message{ 32 Header: r.header, 33 Body: b, 34 }) 35 }