use BaseService.OnReset method to recreate channels

This commit is contained in:
Anton Kaliaev 2017-03-28 14:01:22 +04:00
parent d6587be7bc
commit b0d2032488
No known key found for this signature in database
GPG Key ID: 7B6881D965918214

View File

@ -47,16 +47,21 @@ func (wsc *WSClient) String() string {
return wsc.Address + ", " + wsc.Endpoint return wsc.Address + ", " + wsc.Endpoint
} }
// OnStart implements cmn.BaseService interface
func (wsc *WSClient) OnStart() error { func (wsc *WSClient) OnStart() error {
wsc.BaseService.OnStart() wsc.BaseService.OnStart()
err := wsc.dial() err := wsc.dial()
if err != nil { if err != nil {
return err return err
} }
go wsc.receiveEventsRoutine()
return nil
}
// OnReset implements cmn.BaseService interface
func (wsc *WSClient) OnReset() error {
wsc.ResultsCh = make(chan json.RawMessage, wsResultsChannelCapacity) wsc.ResultsCh = make(chan json.RawMessage, wsResultsChannelCapacity)
wsc.ErrorsCh = make(chan error, wsErrorsChannelCapacity) wsc.ErrorsCh = make(chan error, wsErrorsChannelCapacity)
go wsc.receiveEventsRoutine()
return nil return nil
} }
@ -86,6 +91,7 @@ func (wsc *WSClient) dial() error {
return nil return nil
} }
// OnStop implements cmn.BaseService interface
func (wsc *WSClient) OnStop() { func (wsc *WSClient) OnStop() {
wsc.BaseService.OnStop() wsc.BaseService.OnStop()
// ResultsCh/ErrorsCh is closed in receiveEventsRoutine. // ResultsCh/ErrorsCh is closed in receiveEventsRoutine.