diff --git a/client.go b/client.go index 43311f9..c35b3c5 100644 --- a/client.go +++ b/client.go @@ -26,6 +26,14 @@ func NewClient() Client { return &bufferedClient{client: defaultHttpFactory(), handle: getHandleForEncoding(EncodingMsgpack)} } +func NewClientWithHttpClient(client *http.Client) Client { + if client != nil { + return &bufferedClient{client: client, handle: getHandleForEncoding(EncodingMsgpack)} + } else { + return &bufferedClient{client: defaultHttpFactory(), handle: getHandleForEncoding(EncodingMsgpack)} + } +} + func newRequest(url string, contentType string, reader io.Reader) (r *http.Request, err error) { request, errRequest := http.NewRequest("POST", url, reader) if errRequest != nil { diff --git a/go.go b/go.go index 7e56959..4f11c10 100644 --- a/go.go +++ b/go.go @@ -436,12 +436,17 @@ func renderTSRPCServiceClients(services ServiceList, fullPackageName string, pac } func New` + interfaceName + `(url string, endpoint string) ` + interfaceName + ` { + return New` + interfaceName + `WithClient(url, "` + service.Endpoint + `", nil) + } + + func New` + interfaceName + `WithClient(url string, endpoint string, client *http.Client) ` + interfaceName + ` { return &` + clientName + `{ URL: url, EndPoint: endpoint, - Client: gotsrpc.NewClient(), + Client: gotsrpc.NewClientWithHttpClient(client), } - }`) + }`) + //Render Methods g.l(`