func New(url string,
	cfg *config.Config,
	credentialProvider *credentials.Credentials,
	statsEngine stats.Engine,
	publishMetricsInterval time.Duration,
	rwTimeout time.Duration,
	disableResourceMetrics bool) wsclient.ClientServer {
	cs := &clientServer{
		statsEngine:            statsEngine,
		publishTicker:          nil,
		publishHealthTicker:    nil,
		publishMetricsInterval: publishMetricsInterval,
	}
	cs.URL = url
	cs.AgentConfig = cfg
	cs.CredentialProvider = credentialProvider
	cs.ServiceError = &tcsError{}
	cs.RequestHandlers = make(map[string]wsclient.RequestHandler)
	cs.MakeRequestHook = signRequestFunc(url, cs.AgentConfig.AWSRegion, credentialProvider)
	cs.TypeDecoder = NewTCSDecoder()
	cs.RWTimeout = rwTimeout
	cs.disableResourceMetrics = disableResourceMetrics
	// TODO make this context inherited from the handler
	cs.ctx, cs.cancel = context.WithCancel(context.TODO())
	return cs
}
func New(url string,
	cfg *config.Config,
	credentialProvider *credentials.Credentials,
	statsEngine stats.Engine,
	publishMetricsInterval time.Duration,
	rwTimeout time.Duration,
	disableResourceMetrics bool) wsclient.ClientServer {
	cs := &clientServer{
		statsEngine:            statsEngine,
		publishTicker:          nil,
		publishHealthTicker:    nil,
		publishMetricsInterval: publishMetricsInterval,
	}
	cs.URL = url
	cs.AgentConfig = cfg
	cs.CredentialProvider = credentialProvider
	cs.ServiceError = &tcsError{}
	cs.RequestHandlers = make(map[string]wsclient.RequestHandler)
	cs.MakeRequestHook = signRequestFunc(url, cs.AgentConfig.AWSRegion, credentialProvider)
	cs.TypeDecoder = NewTCSDecoder()
	cs.RWTimeout = rwTimeout
	cs.disableResourceMetrics = disableResourceMetrics
	
	cs.ctx, cs.cancel = context.WithCancel(context.TODO())
	return cs
}
func New ( url string , cfg * config . Config , credentialProvider * credentials . Credentials , statsEngine stats . Engine , publishMetricsInterval time . Duration , rwTimeout time . Duration , disableResourceMetrics bool ) wsclient . ClientServer { cs := & clientServer { statsEngine : statsEngine , publishTicker : nil , publishHealthTicker : nil , publishMetricsInterval : publishMetricsInterval , } cs . URL = url cs . AgentConfig = cfg cs . CredentialProvider = credentialProvider cs . ServiceError = & tcsError { } cs . RequestHandlers = make ( map [ string ] wsclient . RequestHandler ) cs . MakeRequestHook = signRequestFunc ( url , cs . AgentConfig . AWSRegion , credentialProvider ) cs . TypeDecoder = NewTCSDecoder ( ) cs . RWTimeout = rwTimeout cs . disableResourceMetrics = disableResourceMetrics // TODO make this context inherited from the handler cs . ctx , cs . cancel = context . WithCancel ( context . TODO ( ) ) return cs }
// New returns a client/server to bidirectionally communicate with the backend.
// The returned struct should have both 'Connect' and 'Serve' called upon it
// before being used.
New returns a client / server to bidirectionally communicate with the backend . The returned struct should have both Connect and Serve called upon it before being used .